使用另一个存储过程中的语句动态调用插入值

时间:2017-12-17 20:17:34

标签: sql-server tsql dynamic-sql

我正在存储过程中创建一个存储过程,并且我希望将存储过程中动态生成的值插入到另一个存储过程中,我尝试去了很多地方,但仍然没有找到我的答案,或者他们不在我的附近给定方案请在下面查看

以下6行是上述存储过程的一部分,基于这六行,我想创建另一个存储过程,我在调用它们插入语句这六行正在完成我想要的工作,但是如何打印或调用它们在存储过程中,以便显示插入语句。

我试过输出和表变量仍然无法填充insert语句。请帮我实现这个感谢

declare @DD varchar(max)

set @DD='select '+isnull(@allcol,'')+ ' from '+@Table1+' a '+'inner join '+@Table2+' b on a.'+@KeyColumn1+'=b.'+@KeyColumn2+isnull(' inner join '+@Table3+' c on a.'+@KeyColumn1+'=c.'+@KeyColumn3,'') 
--print @DD
--exec (@DD)

-- Declare your stored procedure name here
DECLARE @create_stored_procedure nvarchar(max) 
DECLARE @TableName nvarchar(max)

-- Please provide name to your stored procedure
set @TableName = 'staging_ABC'

SET @create_stored_procedure = N' 
   CREATE PROCEDURE [dbo].[sproc_' + @TableName + ']
   AS
   BEGIN
    -- If stage table exist drop it and then insert into [staging_ABC]
    IF EXISTS (SELECT * FROM sys.objects WHERE NAME = ''' + @TableName + ''')
    BEGIN
    DROP TABLE [dbo].[Staging_ABC]
    END

    -- We need to populate insert statement here from @dd
    --print @DD
  END '

0 个答案:

没有答案