我使用OPENROWSET
命令来执行查询。
我希望结果值必须插入到临时表中,如
SELECT * INTO #TempTable EXEC @query
但显示错误
对象或列名称缺失或为空。对于SELECT INTO语句,请验证每列是否具有名称。对于其他语句,请查找空别名。别名定义为""或[]是不允许的。将别名更改为有效名称。
有谁能告诉我如何执行查询并插入临时表?
示例代码是
declare @Query nvarchar(max)
SET @Query ='SELECT
*
FROM
OPENROWSET
(
''SQLNCLI'',
''servername'';
''db'';
''pwd'',
''set nocount on;
set fmtonly off;
exec databaseName.dbo.spname ''''param1 '''',''''param2'''',''''param3'''',''''param3'''' ''
)
'
select * into #temp exec sp_executesql @Query
答案 0 :(得分:1)
您必须使用以下格式:
DECLARE @T TABLE(Col1 int, col2 ...)
INSERT INTO @T
EXEC query
SELECT * FROM @T
例如:
DECLARE @T TABLE(name NVARCHAR(100),minimum INT, maximum INT, configvalue INT, runvalue INT)
INSERT INTO @T
EXEC sys.sp_configure
SELECT * FROM @T
WHERE runvalue=1