【问题标题】:Execute stored procedure within Openrowset to place in temp table在 Openrowset 中执行存储过程以放置在临时表中
【发布时间】:2016-08-01 23:33:05
【问题描述】:

我花了一整天的时间来解决这个问题,并准备好寻求帮助。

我正在尝试使以下代码正常工作。 (用户和通行证由于明显的原因被排除在外) 我正在从 SSMS 运行查询,并希望获取存储过程的内容并将其放在临时表中。您能否修复我的查询,使其正常工作。 :)

sp_configure 'Show Advanced Options', 1
GO
RECONFIGURE
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO

SELECT * INTO #MyTempTable FROM OPENROWSET('SQLNCLI', 'Server=SQL01\SQL2008R2;Database=ExtData;
Uid=xxxx;Pwd=xxxx',
     'EXEC sp_MonthlyInventoryStock')

这是我得到的错误:

配置选项“显示高级选项”从 1 更改为 1。运行 RECONFIGURE 语句进行安装。
配置选项“Ad Hoc Distributed Queries”从 1 更改为 1。运行 RECONFIGURE 语句进行安装。
链接服务器“(null)”的 OLE DB 提供程序“SQLNCLI10”返回消息“无效的授权规范”。
链接服务器“(null)”的 OLE DB 提供程序“SQLNCLI10”返回消息“无效的连接字符串属性”。

消息 7399,第 16 层,状态 1,第 3 行
链接服务器“(null)”的 OLE DB 提供程序“SQLNCLI10”报告错误。身份验证失败。
消息 7303,第 16 层,状态 1,第 3 行
无法为链接服务器“(null)”初始化 OLE DB 提供程序“SQLNCLI10”的数据源对象。

【问题讨论】:

  • 对不起...一个错字...它是服务器。刚改了。同样的错误。
  • 如果我使用 IP 地址而不是服务器名称,我会得到同样的错误。
  • 愚蠢的问题,但是您是否尝试使用 SSMS 连接到远程服务器?
  • 这听起来可能很奇怪,但我只能在我的连接字符串跨越多行(如你的)时复制。如果我将Uid=... 与连接字符串的其余部分放在同一行,则不会出现错误。
  • 这行得通吗? SELECT * FROM OPENROWSET ('SQLOLEDB', 'Server=SQL01\SQL2008R2; UID=MyUser; PWD=MyPassword', 'SELECT 1')

标签: sql-server


【解决方案1】:

先生。 Reband回答了这个问题。看起来连接字符串必须在同一行。

您还需要包含 'SET FMTONLY OFF;并让 S.P. 将 NOCOUNT 设置为 ON。

最终答案(连接字符串都在一行):

sp_configure 'Show Advanced Options', 1
GO
RECONFIGURE
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO

SELECT * INTO #MyTempTable 
FROM OPENROWSET('SQLNCLI'
                ,'Server=SQL01\SQL2008R2;Database=ExtData;Uid=xxxx;Pwd=xxxx'
                ,'SET FMTONLY OFF;SET NOCOUNT ON;EXEC sp_MonthlyInventoryStock')
GO

【讨论】:

    【解决方案2】:

    在我的情况下,问题是由连接字符串中的额外空格引起的。

    (本地);空间受信任

    不工作:

    SELECT  * 
    FROM    OPENROWSET ('SQLNCLI','Server=(local); TRUSTED_CONNECTION=YES;'
      ,'exec master.dbo.sp_who')
    

    工作一个

    SELECT  * 
    FROM    OPENROWSET ('SQLNCLI','Server=(local);TRUSTED_CONNECTION=YES;'
     ,'exec master.dbo.sp_who')
    

    【讨论】:

      猜你喜欢
      • 2014-03-29
      • 1970-01-01
      • 2013-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-22
      相关资源
      最近更新 更多