表格:
create table TabA
(ID int, Name varchar(20))
insert into TabA
select 1,'ABC' union
select 2,'DEF' union
select 3,'GHD'
create table TabB
(ID int, Name varchar(20))
insert into TabA
select 1,'XYZ' union
select 2,'STF' union
select 3,'LDZ'
create table status
(Result1 int,Result2 int )
Create table query(query1 varchar(1000),query2 varchar(1000))
Insert into query(query1,query2)
select '''select COUNT(*) from TabA''','''select COUNT(* )from TabB'''
select * from query
过程:
create Procedure [dbo].spStatus
AS
BEGIN
SET NOCOUNT ON;
Declare @sqlString1 nvarchar(1000)
,@sqlString2 nvarchar(1000)
,@col_value1 varchar(256)
,@col_value2 varchar(256)
select @sqlString1 = query1
, @sqlString2 =query2
from Query
EXEC sp_executesql
@query=@sqlString1, --sql string is your full select statement
@params = N'@col_Value1 varchar(256) OUTPUT',
@col_Value1 = @col_Value1 OUTPUT
print(@sqlString1)
-- @sqlString2, --sql string is your full select statement
--@params = N'@col_Value2 varchar(256) OUTPUT',
-- @col_Value2 = @col_Value2 OUTPUT
Insert Into dbo.Status(Result1,Result2 )
Values(@col_Value1,@col_Value2)
End
如果我们只使用 @query=@sqlString1
就可以工作,但我希望这两个语句 @query=@sqlString1,@query=@sqlString2
应该一起执行。
请帮助我们如何使用这两个语句来执行?
提前致谢
最佳答案
你的意思是:
SET @sqlString1 = @sqlString1 + ';' + @sqlString2;
EXEC sp_executesql @query = @sqlString1 --...
关于sql-server - 我们如何对两个动态 SQL 语句使用 EXEC sp_executesql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7337757/