我觉得你可以插入你的 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
这有两件事要考虑 - 它没有为第一个和后续子句提供 WHERE 和 AND (我相信你可以这样做,)并且它从它们的源中删除你的 where 子句(你可以把它们全部放入首先是一个临时标签来解决这个问题。)
如果您的子句都在同一列上,您可以在一列中拥有一个 LIKE 表达式列表,并使用 LIKE 运算符连接到该列表 - 这很方便。
无论如何在上面结束时,运行sql:
执行(@Sql)