Sql server 2008 没有列别名的OPENROWSET?
我试图编写一个查询,将存储过程的结果选择到临时表中。但是,存储过程已设置为在运行时返回1个不带别名的结果。(见下文) 显然,当我尝试将数据选择到临时表中时,会出现错误 对象或列名丢失或为空。选择进入 语句,验证每列是否有名称。对于其他语句,请参见 用于空别名。不允许使用定义为“”或[]的别名。 将别名更改为有效名称 有没有办法解决这个问题,因为我将无法更新过程以输出别名!基本上,我是在追求一种做事的方式Sql server 2008 没有列别名的OPENROWSET?,sql-server-2008,openrowset,Sql Server 2008,Openrowset,我试图编写一个查询,将存储过程的结果选择到临时表中。但是,存储过程已设置为在运行时返回1个不带别名的结果。(见下文) 显然,当我尝试将数据选择到临时表中时,会出现错误 对象或列名丢失或为空。选择进入 语句,验证每列是否有名称。对于其他语句,请参见 用于空别名。不允许使用定义为“”或[]的别名。 将别名更改为有效名称 有没有办法解决这个问题,因为我将无法更新过程以输出别名!基本上,我是在追求一种做事的方式 SELECT * INTO #tmptable FROM OPENROWSET ('SQ
SELECT * INTO #tmptable
FROM OPENROWSET ('SQLNCLI', 'Server=ServerName;Trusted_Connection=yes;','SET FMTONLY OFF EXEC sp_name')
如果您知道将从
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
如果您不知道要返回多少列。。。我不知道这是可能的