Długa odpowiedź: numer linii jest liczona od rachunku CREATE PROCEDURE
, plus wszelkie puste linie lub linie komentarz może mieli nad nim, kiedy rzeczywiście prowadził oświadczenie CREATE
, ale nie licząc żadnych linii przed GO
oświadczenie ...
Uważam, że znacznie łatwiej dokonać przechowywane proc, aby bawić się, aby potwierdzić:
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
Po utworzeniu go, można przełączyć go do ALTER PROCEDURE
i dodać kilka wierszy powyżej uwag i powyżej i poniżej pierwszego GO
oświadczenie, aby zobaczyć efekt.
Jedną z bardzo dziwnych rzeczy, które zauważyłem było to, że musiałem uruchomić EXEC ErrorTesting
w nowym oknie zapytań, zamiast podświetlać je na dole tego samego okna i uruchamiać ... Kiedy to robiłem, numery linii stale rosły! Nie wiem, dlaczego tak się stało.
Myślę, że numer linii odnosi się do treści proc. tj. zignoruj nagłówek. –
Może http://stackoverflow.com/questions/4550342/possible-to-get-the-line-of-the-current-executing-sproc-in-sql-server pomoże. –
Gdzie kończy się nagłówek? Po rozpoczęciu, które następuje po procedurze zmiany ... AS? – chama