Update вопросИмея некоторые проблемы при создании хранимой процедуры (Неправильный синтаксис около «конец»)
Изменены соответственно хранимую процедуру, но она не возвращает никаких значений по какой-то причине, даже если я добавил ВОЗВРАТ @UserID право выше последнего END.
Update 2
Хорошо никогда не возражаю, это просто Entity Framework, который меня дразнить. Я просто попытался запустить хранимую процедуру из SSMS, и она отлично работала :)
Я копировал некоторые из моих других хранимых процедур, но каждый раз, когда мои требования к ним меняются, а также их содержимое. Не уверен, что я сделал неправильно в этот раз, может ли кто-нибудь указать мне в правильном направлении?
CREATE PROCEDURE [dbo].[GetUserID]
(
-- Add the parameters for the function here
@UUID varchar(36),
@SuperID varchar(33)
)
AS
BEGIN
SET NOCOUNT ON
SET ARITHABORT ON
DECLARE @SuperIDExists bit
DECLARE @UserID int
SELECT @SuperIDExists = CASE
WHEN EXISTS (SELECT *
FROM dbo.[Users] AS u
WHERE u.SuperID = @SuperID)
THEN CAST(1 as bit)
ELSE CAST(0 as bit)
END
IF @SuperIDExists = 1
BEGIN
SELECT @UserID = (SELECT u.ID
FROM dbo.[Users] AS u
WHERE u.SuperID = @SuperID)
END
ELSE
BEGIN
SELECT @UserID = (SELECT u.ID
FROM dbo.[Users] as U
WHERE u.UUID = @UUID)
END
Ошибки я получаю:
Msg 102, Level 15, State 1, процедура GetUserID, строка 45 [Batch Start Line 9]
Неправильный синтаксис около 'END'
Добавить еще один 'END' перед' GO'. – DVT
Вам не хватает конца в последнем. Тело процедуры началось с Begin. Но нет Конец –
Это сработало! Но почему? Разве не каждый КОНЕЦ сопровождается BEGIN? –