Sql server 在存储过程代码中调用sqlcmd命令

Sql server 在存储过程代码中调用sqlcmd命令,sql-server,stored-procedures,sqlcmd,openrowset,Sql Server,Stored Procedures,Sqlcmd,Openrowset,由于链接服务器不容易发送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

由于链接服务器不容易发送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')  
“:”附近的语法不正确


sqlcmd模式
:启用sqlcmd模式时,connect
语法在SSMS和QA中有效,但它始终是一个客户端命令,由SSMS或QA本身执行,从不发送到引擎。因此,它决不能像存储过程那样嵌入到服务器端模块中。如果您真正指的是存储过程,那么语法错误也就不足为奇了……

SQLServerManagementStudio有一个错误。古老的查询分析器有一个类似的模式,但你必须和老人们谈谈,看看如何启用它…很抱歉在你详细的回答之后,我耽搁了很长时间-我正在寻找任何其他解决方案来通过链接服务器实现openrowset/openquery。事实上,你回答了我的问题,我需要打开另一个台阶来找到解决方案。