Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

virgolette dinamiche t-sql in stringa

NB:Vedi La maledizione e le benedizioni dell'SQL dinamico - Gestire i nomi dinamici di tabelle e colonne

Dovresti comunque usare sql parametrizzato e usare exec sp_executesql (che accetta parametri). Usa anche QUOTENAME attorno ai nomi degli oggetti anziché concatenare le parentesi da soli.

SET @SQLString = N'SELECT @CountOUT = COUNT(*) FROM ' + 
QUOTENAME(@table_name) + ' WHERE ' + 
QUOTENAME(@new_column_name) + ' = @description'

EXECUTE sp_executesql @SQLString
    ,N'@description varchar(50), @CountOUT int OUTPUT'
    ,@description = @description
    ,@CountOUT = @CountOUT OUTPUT;