2012-02-19 37 views

回答

20

您可以单击Management Studio中的Parse query按钮。这是在工具栏上(也可以使用Ctrl + F5)蓝复选标记:

parse.png

这仅验证语法,并不会检查你引用的对象存在,即连接是否有效等等。例如下面的正确分析,因为递延解决方案假定你的时候运行查询“真正”的对象将存在:

SELECT foo FROM dbo.table_does_not_exist; 

这也通过解析:

SELECT d.foo 
FROM x.dbo.does_not_exist AS d 
INNER JOIN sys.objects AS s 
ON d.blat = s.bar; 

即使sys.objects存在但不包含列bar

它基本上是相同的机制,允许您编译一个引用不存在的对象的存储过程(这当然会在运行时失败)。

+0

现在是微软提供一种检查无效对象名称和语义的方法了。任何阅读此文的人都可能拥有outlook/hotmail/live帐户,请对此功能投票,我们将拥有一个很好的分析功能:http://connect.microsoft.com/SQLServer/feedback/details/361775/ssms-inconsistent-behavior -of-解析的功能 – 2014-07-28 15:25:45