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

时间:2015-02-06 19:13:35

标签: sql sql-server procedure

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

规则表如: RuleId RuleDescription RuleSqlQuery

所有查询都返回相同的记录(Id,Name,Others)

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

1 个答案:

答案 0 :(得分:0)

如果您使用的是sql server,可能是这样的......

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