注意:動的 SQL の呪いと祝福 - 動的テーブルと列名の処理
パラメータ化されたSQLを引き続き使用し、exec sp_executesql
を使用する必要があります (パラメータを取ります)。 QUOTENAME
も使用 かっこを自分で連結するのではなく、オブジェクト名を囲んでください。
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;