Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Aspas t-sql dinâmicas em string


NB:Veja A maldição e bênçãos do SQL dinâmico - Lidando com nomes dinâmicos de tabelas e colunas

Você ainda deve usar sql parametrizado e usar exec sp_executesql (que recebe parâmetros). Use também QUOTENAME em torno dos nomes dos objetos em vez de concatenar os colchetes você mesmo.
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;