SQL Server:将参数输出到表
我有下一个T-SQL代码: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是一个输入输出变量 运行代
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参数给我一个字符,谢谢你的解决方案。