偶爾對比起2016以下的版本(比如ssms2014),ssms2016有一個小地方有區別。就是報錯的行號有區別 舉個例子,下麵同樣的語句在ssms2014和ssms2016裡面運行。就是如下的效果 顯而易見,這裡的行9和 xml 變數的定義都是有問題的。所以ssms2014裡面直接給出 這樣的提示錯 ...
偶爾對比起2016以下的版本(比如ssms2014),ssms2016有一個小地方有區別。就是報錯的行號有區別
舉個例子,下麵同樣的語句在ssms2014和ssms2016裡面運行。就是如下的效果
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裡面直接給出
消息 102,級別 15,狀態 1,過程 T112,第 9 行 “AS”附近有語法錯誤。 消息 102,級別 15,狀態 1,第 15 行 “=”附近有語法錯誤。
這樣的提示錯誤,完全沒有問題。直接雙擊666就可以定位到錯誤的位置。
到了ssms2016的版本,報錯的信息是這樣的
消息 102,級別 15,狀態 1,過程 T112,行 5 [批起始行 4] “AS”附近有語法錯誤。 消息 102,級別 15,狀態 1,第 15 行 “=”附近有語法錯誤。
註意第一行
消息 102,級別 15,狀態 1,過程 T112,行 5 [批起始行 4] 這裡,是定位到本批次的行。並不是整個查詢頁面所在的行。
並且看回第二個錯誤消息,也是定位到行15,也就是說,針對變數的定義顯示的方式不變,變化的是跟go有關的存儲過程定位。
怎麼說呢。這個變化感覺一半一半吧,雖然都是可以雙擊定位到具體位置。
雖然只是一個小小的區別。但是也跟大家分享一下嘛~