没有列别名的OPENROWSET?

时间:2014-10-16 14:05:22

标签: sql-server-2008 openrowset

我尝试编写查询以将存储过程的结果选择到临时表中。但是,已设置存储过程,以便在运行时返回1结果,不带别名。 (见下文)

enter image description here

当我尝试将数据选入临时表时,显然会出现错误。

  

对象或列名称缺失或为空。对于SELECT INTO   声明,验证每列是否有名称。对于其他陈述,请查看   对于空别名。别名定义为""或[]是不允许的。   将别名更改为有效名称。

有没有办法围绕这个,因为我将无法更新程序输出别名!基本上是我做了一个方法

SELECT * INTO #tmptable
 FROM OPENROWSET ('SQLNCLI', 'Server=ServerName;Trusted_Connection=yes;','SET FMTONLY OFF EXEC sp_name')

1 个答案:

答案 0 :(得分:2)

如果您知道将从OPENROWSET返回多少列,则可以在插入值之前创建临时表;这允许您为列命名。

CREATE TABLE #tmptable (Value INT NOT NULL)
INSERT #tmptable
SELECT * FROM OPENROWSET ('SQLNCLI','Server=ServerName;Trusted_Connection=yes;','SET FMTONLY OFF EXEC sp_name')
-- DROP TABLE #tmptable

如果您不知道要返回多少列......我不知道这是可能的。