Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server:将参数输出到表_Sql_Sql Server_Tsql_Parameters_Output - Fatal编程技术网

SQL Server:将参数输出到表

SQL Server:将参数输出到表,sql,sql-server,tsql,parameters,output,Sql,Sql Server,Tsql,Parameters,Output,我有下一个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是一个输入输出变量 运行代

我有下一个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
    
        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
    
        SELECT *
        FROM #Table
    

    “变量获取一个表”是什么意思?输出参数获取一个5行x 10列的结果集。仍然不知道如何定义一个输出参数,它接受字符(1)作为输入,但输出一个“结果集”。。。你能展示一下存储过程代码吗,这样我们就不必猜测它的作用了?是的,我错了!,@D参数给我一个字符,谢谢你的解决方案。