sql-server - 我们如何对两个动态 SQL 语句使用 EXEC sp_executesql?

标签 sql-server tsql sql-server-2008

表格:

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/

相关文章:

sql - 如何在同一表的一列中查找重复值而在另一列中查找不同值?

java - Azure混合连接不使用java作为后端代码连接sql server数据库实例

sql-server - T-SQL : Converting NTEXT to VARCHAR to INT/BIGINT

sql - 数据库设计问题

sql-server - 当时间戳(rowversion)溢出时会发生什么?

sql - SQL Server是否默认在表的所有列上创建非聚集索引

c# - Microsoft SQL Server,在服务器资源管理器中创建新表

c# - 为什么 IEnumerable.Count() 的上限为 200?

sql - 如何从变量运行超过 8000 个字符的 SQL 语句?

sql - 查找正在使用的外键