繁体   English   中英

SQL Server:输出参数到表

[英]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而只想将过程的结果集存储到表中,那么您几乎没有其他选择:

  1. 表已创建之前

     CREATE TABLE #Table (Field1 INT, Field2 VARCHAR(50)); INSERT INTO #Table EXEC yourProcedure 

看结果

    SELECT *
    FROM #Table
  1. 使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM