Длинный ответ: номер строки отсчитывается от оператора CREATE PROCEDURE
плюс любые пустые строки или строки комментариев, которые у вас могли быть над ним, когда вы фактически выполняли оператор CREATE
, но не считали никаких строк перед GO
оператор…
Мне было гораздо проще создать сохраненный процесс, с которым можно поиграться, чтобы подтвердить:
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE ErrorTesting
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT 1/0
END
GO
После того, как вы его создали, вы можете переключить его на ALTER PROCEDURE
и добавьте несколько пустых строк над комментариями, над и под первым оператором GO
, чтобы увидеть эффект.
Одна очень странная вещь, которую я заметил, состояла в том, что мне пришлось запустить EXEC ErrorTesting
в новом окне запроса вместо того, чтобы выделять его в нижней части того же окна и запускать ... Когда я это делал, номера строк продолжали расти!Не уверен, почему это произошло ..