需要在SQLCmd.exe中进行说明

时间:2011-07-19 21:19:29

标签: sql-server sql-server-2008

拥有一个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。

1 个答案:

答案 0 :(得分:0)

在SSMS中运行查询会产生同样的错误:

  

Msg 7202,Level 11,State 2,Procedure usp_select_customers,Line 4   无法在sys.servers中找到服务器“分析”。验证   指定了正确的服务器名称。如有必要,执行存储   过程sp_addlinkedserver将服务器添加到sys.servers。

所以问题不在于sqlcmd或SSMS之间的区别,它必须是别的东西。例如,您正在针对不同的计算机运行,或者您只是不在SSMS中运行它,而只是检查语法。