2012-01-08 6 views
-3

Я получаю ошибку, почему?Структура синтаксиса хранимой процедуры

ALTER PROCEDURE dbo.verifGuids 

@value char(36), 
@message char(1)Output 
AS 

Begin 

select value FROM guids WHERE @value=value; 

    If @value=value 
    BEGIN 
    DELETE value FROM guids WHERE @value=value ; 
    SET @message = 0 
    END 

    Else 
    BEGIN 
    Set @message = 1 
    END 

    Return @message 

    END 

Благодаря

+2

Что фактическая ошибка вы получаете? –

+0

Значение столбца не действует в VS ... – FrankSharp

+1

эта строка бессмысленна и ничего не присваивает: выберите значение FROM guids WHERE @ value = value –

ответ

1

могли бы вы попробовать, как показано ниже образом:

ALTER PROCEDURE dbo.verifGuids 
@value char(36), 
@message char(1)Output 
AS 
Begin 

DECLARE @SelectValue char(36) 

select @SelectValue = value FROM guids WHERE @value=value; 

If @[email protected] 
BEGIN 
    DELETE value FROM guids WHERE @value=value ; 
    SET @message = 0 
END 
Else 
BEGIN 
    Set @message = 1 
END 

Return @message 
END 
0

Вы не присваивая значение базы данных вы запрашиваете в переменную для сравнения. Также вы указываете столбец при удалении. Попробуйте что-то вроде этого:

DELETE FROM guids WHERE [email protected]; 
IF @@ROWCOUNT > 0 
BEGIN 
    SET @message = 0 
END 
ELSE 
BEGIN 
    SET @message = 1 
END 
Смежные вопросы