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;