【发布时间】:2014-09-11 18:41:18
【问题描述】:
我正在使用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
【问题讨论】:
-
要明确您使用的是 MSSQL 而不是 MySQL?在 MySQL 中无法创建像 #TempTable 这样的别名
-
发布
@query的代码。似乎您正在查询中进行一些聚合,但没有为该列提供任何别名 -
您不能将“into #temp”子句放入您通过 sp_executesql 执行的动态 sql 语句中吗?
-
databaseName.dbo.spname是做什么的? -
exec 命令将在该数据库中执行该 sp
标签: sql sql-server sql-server-2008 tsql