首页 > 解决方案 > 如何将存储过程的执行插入表中?

问题描述

我必须将存储过程的执行插入表中。例如,我调用了一个过程proc,我想执行它并将其数据插入表中。我发现了一些这样的例子:

DECLARE @storedProcname NVARCHAR(MAX) = ''
SET @storedProcname = 'proc'
DECLARE @strSQL AS VARCHAR(MAX) = 'CREATE TABLE myTableName '
SELECT @strSQL = @strSQL+STUFF((
SELECT ',' + name +' ' + system_type_name
FROM sys.dm_exec_describe_first_result_set_for_object (OBJECT_ID(@storedProcname),0)
FOR XML PATH('')),1,1,'(') + ')'
print @strSQL
EXEC (@strSQL)
INSERT INTO myTableName
EXEC ('proc')
SELECT * FROM myTableName
--DROP TABLE myTableName

它适用于这个过程,但是如何为每个过程创建自己的表来插入数据?因为我有很多程序,而且它们都有不同数量的列,并且列的数据类型也不同。我想我会写一些光标,脚本将在其中列出所有过程,为它们创建表并将它们插入表或其他东西中。

标签: sqlsql-serverstored-procedures

解决方案


推荐阅读