У меня возникли трудности с установкой правильного синтаксиса для вызова хранимой процедуры в хранимой процедуре. Я думал, что этот синтаксис был правильным:Исправить синтаксис для вызова хранимой процедуры с параметрами из другой хранимой процедуры
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[newProc](
@param1 varchar(50),
@param2 nvarchar(2000),
@param3 int,
@param4 int,
@param5 int,
@param6 int
)
AS
BEGIN
SET NOCOUNT ON;
EXEC [dbo].[externProc1] @param1, @param2;
GO
EXEC [dbo].[externProc2] @param3, @param4;
GO
EXEC [dbo].[insertProc3] @param5, @param6;
GO
END
GO
Но когда я пытаюсь это, я получаю «Неправильный синтаксис около„;“ Должен объявить скалярную переменную @ param3. Должен объявить скалярную переменную @ param5. "
Каков правильный синтаксис для вызова хранимой процедуры с параметрами из другой хранимой процедуры?
Ах, да, я исправил это. Вы получите чек после истечения срока. Если в конце есть только один GO, будут ли выполняться предыдущие операции синхронно? И.Е. есть ли причина не просто использовать один GO в конце? – Christian
Я уверен, что единственный GO в конце не нужен, особенно при исполнении из студии управления. – davek
GO не является периодом инструкций T-SQL, он просто помощник для инструментов MS Analyzer/Management Studio, поэтому вы НЕ МОЖЕТЕ использовать его в хранимой процедуре – BlackTigerX