CREATE PROCEDURE [Class_delete]
(
@Code [varchar](12),
@ReValue [bit] output
)
AS
if (select count(*) from Class Where left(Code,len(@Code))=@Code and Code<>@Code)>0
SET @ReValue=0
ELSE
DELETE Class
WHERE
( [Code] = @Code
)
SET @ReValue=1
GO我是想让它如果存在有下级目录的话(即left(Code,len(@Code))=@Code and Code<>@Code),@ReValue就返回0,否则否回1,例如
code name1
50 aa
5010 aa10
5020 aa20
...
当@Code=50时,我要@ReValue=0但是我试了N多次,始终不能返回0,为什么?请帮忙,谢谢!
(
@Code [varchar](12),
@ReValue [bit] output
)
AS
if (select count(*) from Class Where left(Code,len(@Code))=@Code and Code<>@Code)>0
SET @ReValue=0
ELSE
DELETE Class
WHERE
( [Code] = @Code
)
SET @ReValue=1
GO我是想让它如果存在有下级目录的话(即left(Code,len(@Code))=@Code and Code<>@Code),@ReValue就返回0,否则否回1,例如
code name1
50 aa
5010 aa10
5020 aa20
...
当@Code=50时,我要@ReValue=0但是我试了N多次,始终不能返回0,为什么?请帮忙,谢谢!
return @ReValue;
看行么?
SET @ReValue=0
ELSE
BEGIN
DELETE Class
WHERE
( [Code] = @Code
)
SET @ReValue=1
END
GO====
狗年旺旺
begin
......
SET @ReValue=0
end
ELSE
begin
......
SET @ReValue=1
end这样才对嘛
SET @ReValue=0
ELSE
--一定要begin 和end来包含执行块哦,否则只是运行乐delete语句,没有执行set语句的,那么就永远返回1了,够详细了吧
BEGIN
DELETE Class
WHERE
( [Code] = @Code
)
SET @ReValue=1
END
GO====
狗年旺旺
WHERE
( [Code] = @Code
)
这个还需要吗?