2012-01-08 76 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

你得到什么实际的错误? – 2012-01-08 02:06:21

+0

列值在VS中无效... – FrankSharp 2012-01-08 02:11:33

+1

这一行是毫无意义的,并且不分配任何东西:select value FROM GUID WHERE @ value = value – 2012-01-08 02:14:50

回答

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