拥有一个Sql脚本文件名spCreation.sql,其中包含以下内容。
CREATE PROCEDURE dbo.usp_select_customers
as
Begin
SELECT EMP.NAME, EMP.ID FROM analysis.customerDB.dbo.employeetbl
END
打开此文件并在Queryanalyser上执行,而不创建链接服务器“分析”,它不会成功执行任何错误和查询。
在命令提示符下通过sqlcmd执行相同的sql文件。
sqlcmd -s [服务器] [数据库] [登录] [密码] spCreation.sql
它为通知服务器抛出异常。 任何人都可以解释一下sqlCmd的执行行为和查询分析器的执行行为如何?
错误信息如下
消息7202,级别11,状态2,服务器VIJAY-PC,过程usp_select_customers,第4行无法在sys.servers中找到服务器“分析”。验证是否指定了正确的服务器名称。如有必要,执行存储过程sp_addlinkedserv以将服务器添加到sys.servers。
答案 0 :(得分:0)
在SSMS中运行查询会产生同样的错误:
Msg 7202,Level 11,State 2,Procedure usp_select_customers,Line 4 无法在sys.servers中找到服务器“分析”。验证 指定了正确的服务器名称。如有必要,执行存储 过程sp_addlinkedserver将服务器添加到sys.servers。
所以问题不在于sqlcmd或SSMS之间的区别,它必须是别的东西。例如,您正在针对不同的计算机运行,或者您只是不在SSMS中运行它,而只是检查语法。