一个过程一次执行多个查询 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
事情是这样的。 我有一个规则 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