where句を挿入できるようですが、実行方法がわかりません。
それは難しいでしょうが、不可能ではありません。VARCHAR で Sql の一部を構築するには、カーソルまたはループを使用する必要があります。
declare @Sql VARCHAR(2000)
select @Sql = 'INSERT table(RUN_ID,RUN_DATE,GRGR_ID,SGSG_ID,COLUMN_NAME,ERROR_CODE)SELECT @pnRunId,getdate(),GRGR_ID,SGSG_ID,@COLUMN_NAME,@ERROR_CODE from table1_exct where '
while 1 = 1
begin
declare @claus VARCHAR(200)
SET ROWCOUNT 1
SELECT @claus = where_clause from some_table
select @sql = @sql + @claus
delete some_table where where_clause = @claus
set rowcount 0
end
これには、考慮すべき2つのことがあります-最初と後続の句にWHEREとANDを提供しません(それができると確信しています)。ソースからwhere句を削除します(すべてを取得できますそれを回避するには、最初に一時タブを使用します。)
句がすべて同じ列にある場合は、列に LIKE 式のリストを作成し、LIKE 演算子を使用してそれに結合できます。これは便利です。
とにかく、上記の最後に、SQL を実行します。
EXEC(@Sql)