У меня есть запрос с парой процедур, и я хочу создать их все сразу, когда я выполню весь запрос, но есть пара ошибок. Процедуры работают нормально, если я создаю их один за другим.
CREATE PROCEDURE pr_GerarVoo @IDvoo nchar(7), @refAviao nchar(6), @IDrota nchar(6), @dataPartida datetime, @DuracaoHoras int, @PrecoC1 money, @PrecoC2 money, @PrecoC3 money AS
BEGIN
declare @dataChegada datetime = (select DATEADD(HOUR, @DuracaoHoras, @dataPartida))
INSERT INTO voo VALUES(@IDvoo, @dataPartida, @dataChegada, @refAviao, @IDrota, 0)
INSERT INTO CustoLugar VALUES(@IDvoo, '1', @PrecoC1)
INSERT INTO CustoLugar VALUES(@IDvoo, '2', @PrecoC2)
INSERT INTO CustoLugar VALUES(@IDvoo, '3', @PrecoC3)
declare @NumeroPassageiros int = (SELECT NT_passageiros FROM voo V JOIN aviao A ON V.refAviao = A.refAviao where IDvoo = @IDvoo)
declare @i int = 1
while @i <= @NumeroPassageiros
BEGIN
DECLARE @lugarBlt int = (select IDlugar from (SELECT ROW_NUMBER() OVER(ORDER BY IDLugar) as RowNum, * from lugar where refAviao = @refAviao ) lugar WHERE RowNum = @i) -- NAO COMEÇA DESDE O LUGAR 0
INSERT INTO VendaVoo values(@IDvoo, @lugarBlt, 0)
set @i = @i + 1
END
END
GO
-- |/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/| --
-- PROCEDIMETO pr_Eliminar --
-- |\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\| --
CREATE PROCEDURE pr_EliminarVoo @IDvoo nchar(7) AS
BEGIN
IF((SELECT count(*) FROM vendaBilhete WHERE IDvoo = @IDvoo) > 0)
Print 'Não é possivel eliminar o voo ' + @IDvoo
ELSE
BEGIN
DELETE FROM voo WHERE IDvoo = @IDvoo
Print 'O voo ' + @IDvoo + ' foi eliminado com sucesso'
END
END
Извините, если некоторые части на португальском ...
Ошибки:
Сообщение 102, уровень 15, состояние 1, процедура pr_GerarVoo, строка 884
Неверный синтаксис рядом с 'GO'.
Сообщение 102, состояние 15, состояние 1, процедура pr_GerarVoo, строка 884
Неверный синтаксис рядом с 'END'
Строка 884 находится в первом 'BEGIN' после CREATE PROCEDURE pr_GerarVoo ...