[英]SQL Server: Output parameter to table
我有下一个T-SQL代码:
DECLARE @A CHAR(1)
DECLARE @B CHAR(10)
DECLARE @C DECIMAL
DECLARE @D CHAR(1)
SET @A = 'S'
SET @B = '2015-03-23'
SET @C = 1
SET @D = 'P'
EXEC('CALL DATA_COLLECTOR(?,?,?,?)',@A, @B, @C, @D) at LINKED_SERVER_10
PRINT @D
@D是输入输出变量。
运行代码后,变量@D获得结果集(5行10列)。
如何将@D中包含的结果集复制到数据库中的另一个表?
提前致谢。
要从变量创建新表,请使用
SELECT * INTO newTable FROM @D
要将数据放入现有表中,请使用
INSERT INTO existingTable SELECT * FROM @D
您的输出不能为CHAR(1)
如果您忽略@D
而只想将过程的结果集存储到表中,那么您几乎没有其他选择:
表已创建之前
CREATE TABLE #Table (Field1 INT, Field2 VARCHAR(50)); INSERT INTO #Table EXEC yourProcedure
看结果
SELECT *
FROM #Table
使用OPENROWSET
在运行时创建表
sp_configure 'Show Advanced Options', 1 GO RECONFIGURE GO sp_configure 'Ad Hoc Distributed Queries', 1 GO RECONFIGURE SELECT * INTO #Table FROM OPENROWSET('SQLNCLI', 'Server=localhost;Trusted_Connection=yes;', 'EXEC tempdb.dbo.yourProcedure')
看结果
SELECT *
FROM #Table
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.