一个过程一次执行多个查询 SQL

One procedure exec multiple queries one time SQL

事情是这样的。 我有一个规则 table,其中包括一些我将要 运行 的规则。 现在我需要一个程序一次性 运行 所有规则并且我无法通过 RuleId。

规则 table 如: 规则编号 规则说明 RuleSqlQuery

和所有查询return相同的记录(Id, Name, Others)

那么我该如何创建一个过程。

如果您使用的是 sql 服务器,可能是这样的...

create procedure runrules

as

declare @temp table (id int identity(1,1), ruleid int)
declare @curid int
declare @maxid int
declare @tempsql nvarchar(max)

insert into @temp select ruleid from rule

select @curid = 1, @maxid = max(id) from @temp

while @curid <= @maxid
begin

    select @tempsql = RuleSqlQuery 
    from rule R
    inner join @temp T on T.ruleid = R.ruleid
    where T.id = @curid

    EXECUTE sp_executesql @tempsql

    set @curid = @curid + 1
end