偶尔对比起2016如下的版本(好比ssms2014),ssms2016有一个小地方有区别。就是报错的行号有区别sql
举个例子,下面一样的语句在ssms2014和ssms2016里面运行。就是以下的效果spa
1 CREATE PROCEDURE T111 2 AS 3 SELECT GETDATE() 4 GO 5 6 7 CREATE PROCEDURE T112 8 AS 9 SELECT GETDATE() AS 10 GO 11 12 13 14 15 DECLARE @xml = ' 16 <Root> 17 <Nr></Nr> 18 <T> 19 </Root> 20 '
显而易见,这里的行9和 xml 变量的定义都是有问题的。因此ssms2014里面直接给出 code
消息 102,级别 15,状态 1,过程 T112,第 9 行 “AS”附近有语法错误。 消息 102,级别 15,状态 1,第 15 行 “=”附近有语法错误。
这样的提示错误,彻底没有问题。直接双击666就能够定位到错误的位置。xml
到了ssms2016的版本,报错的信息是这样的blog
消息 102,级别 15,状态 1,过程 T112,行 5 [批起始行 4] “AS”附近有语法错误。 消息 102,级别 15,状态 1,第 15 行 “=”附近有语法错误。
注意第一行 class
消息 102,级别 15,状态 1,过程 T112,行 5 [批起始行 4] 这里,是定位到本批次的行。并非整个查询页面所在的行。而且看回第二个错误消息,也是定位到行15,也就是说,针对变量的定义显示的方式不变,变化的是跟go有关的存储过程定位。怎么说呢。这个变化感受一半一半吧,虽然都是能够双击定位到具体位置。虽然只是一个小小的区别。可是也跟你们分享一下嘛~