【问题标题】:Call sqlcmd commands in stored procedure code在存储过程代码中调用 sqlcmd 命令
【发布时间】:2013-05-27 16:13:28
【问题描述】:

由于 Linked Server 不容易发送 openrowset 查询,我直接通过 SQLCMD 模式连接到远程 Sql Server。但这没关系使用查询分析器。当我将代码放入存储过程时,我什至无法保存它:

:Connect x.x.x.x -U sa -P password
select *
from  openrowset('VFPOLEDB','\\share\db\s_object.dbf';'';
    '','SELECT *  FROM s_object where i_class=21 order by 1')  

':' 附近的语法不正确。

【问题讨论】:

  • SQL Server Management Studio 有一个sqlcmd compatible mode。古老的查询分析器也有类似的模式,但是你必须和老人们谈谈如何启用它......

标签: sql-server stored-procedures sqlcmd openrowset


【解决方案1】:

sqlcmd 模式:connect 语法在启用 sqlcmd 模式时在 SSMS 和 QA 中有效,但它始终是 客户端 命令,由 SSMS 或 QA 自己执行,从不发送到引擎.因此,它绝不可以嵌入到服务器端模块中,例如存储过程。如果你真的是说存储过程,那就难怪语法错误了……

【讨论】:

  • 很抱歉在您详细回复后耽搁了很长时间 - 我正在寻找任何其他解决方案来在链接服务器上实施 openrowset/openquery。实际上你回答了我的问题,我需要另辟蹊径来寻找解决方案。
猜你喜欢
  • 1970-01-01
  • 2022-01-26
  • 1970-01-01
  • 2021-04-13
  • 1970-01-01
  • 2019-01-21
  • 1970-01-01
  • 2012-05-22
  • 1970-01-01
相关资源
最近更新 更多