Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente bannato
    Registrato dal
    Aug 2004
    Messaggi
    213

    Parametrizzare il nome di una tabella in una view o stored procedure

    E' possibile passare come parametro ad una view il nome di una tabella su cui la view stessa (o la stored procedure) opera?

  2. #2
    no
    Saluti a tutti
    Riccardo

  3. #3
    Utente bannato
    Registrato dal
    Aug 2004
    Messaggi
    213
    Trovato qualcosa che può andare.

    Guarda qui.


    Posso creare in SQL una query testuale ed eseguirla direttamente in SQL Server con un parametro:

    codice:
    DECLARE @SqlStatement nvarchar(1000)
    DECLARE @Prefix nvarchar(7)
    SET @Prefix = ' WHERE '
     
    -- Definisco la parte di SELECT
    SET @SqlStatement = 'SELECT idCustomer, CustomerName, CustomerEMail,
    CustomerBirthday, CustomerSex FROM tabCustomers'
     
    -- Se ho il filtro sul CustomerName
    IF (@CustomerName <> '') 
    BEGIN
         SET @SqlStatement = @SqlStatement + @Prefix + ' CustomerName LIKE ''%' + 
    	CONVERT(nvarchar(30), REPLACE(@CustomerName, '''', '''''')) + '%'''
         SET @Prefix = ' AND '
    END
     
    -- Se ho il filtro sul CustomerEMail
    IF (@CustomerEMail <> '') 
    BEGIN
         SET @SqlStatement = @SqlStatement + @Prefix + ' CustomerEMail LIKE ''%' + 
    	CONVERT(nvarchar(30), REPLACE(@CustomerEMail, '''', '''''')) + '%'''
         SET @Prefix = ' AND '
    END
     
    -- Se ho il filtro sul CustomerBirthday
    IF ((NOT @CustomerBirthDayStart IS NULL) AND (NOT @CustomerBirthDayEnd IS NULL))
    BEGIN
         SET @SqlStatement = @SqlStatement + @Prefix + ' CustomerBirthDay BETWEEN ''' + 
    	CONVERT(nvarchar(30), @CustomerBirthDayStart) + ''' AND ''' + 
    	CONVERT(nvarchar(30), @CustomerBirthDayEnd) + ''''
         SET @Prefix = ' AND '
    END
     
    -- Se ho il filtro sul CustomerSex
    IF (NOT @CustomerSex IS NULL)
    BEGIN
         SET @SqlStatement = @SqlStatement + @Prefix + ' CustomerSex = ' + CONVERT(nvarchar(30), @CustomerSex)
    END
     
    -- Se devo applicare l'ordinamento
    IF (NOT @SortExpression IS NULL)
         SET @SqlStatement = @SqlStatement + ' ORDER BY ' + @SortExpression
     
    -- Eseguo lo statement di SELECT
    EXEC sp_executesql @SqlStatement
    GO

  4. #4
    beh... e' un bell'esercizio di Transact Sql pero' non risolve quello che chiedevi nel tuo post iniziale. La tabella e' sempre impostata staticamente quello che cambi sono i campi della SELECT, quelli della sezione WHERE e ORDER BY
    Saluti a tutti
    Riccardo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.