Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Dynamische t-sql-Anführungszeichen in Zeichenfolge

NB:Siehe Fluch und Segen von dynamischem SQL - Umgang mit dynamischen Tabellen- und Spaltennamen

Sie sollten weiterhin parametrisiertes SQL verwenden und exec sp_executesql verwenden (das braucht Parameter). Verwenden Sie auch QUOTENAME um die Objektnamen herum, anstatt die Klammern selbst zu verketten.

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;