退出sybase中的存储过程
Exit from stored procedure in sybase
我正在我的存储过程中获取一些参数。在对这些参数进行操作之前,我想验证它们,如果参数不符合要求,那么我想退出存储过程并显示错误消息。
示例代码:
create proc abcd
(
zip varchar(20),
name varchar(20),
network varchar(1)
)
-- validation section
IF (len(zip)<>5 OR LEN(zip)<>9)
begin
print "The zip must be of 5 or 9 characters"
<---- how to exit from here--->
end
IF (len(name)<2)
begin
print "The name must be of at least 2 characters"
<---- how to exit from here--->
end
---- main code
出现上述错误后,如何退出程序?
您可以使用 return
命令如下
-- validation section
IF (len(zip)<>5 OR LEN(zip)<>9)
begin
print "The zip must be of 5 or 9 characters"
return 1
end
IF (len(name)<2)
begin
print "The name must be of at least 2 characters"
return 2
end
return 0 -- on the end of procedure
要获取结果,您可以使用以下代码:
declare @ProcResult int
execute @ProcResult = abcd @Zip = ..., @name...
select @ProcResult
让我提出一些更改建议:
create procedure abcd
@zip varchar(20),
@name varchar(20),
@network varchar(1)
AS
-- validation section
IF (len(@zip)<>5 AND LEN(@zip)<>9)
begin
-- print "The zip must be of 5 or 9 characters"
raiserror 20000 "The zip must be of 5 or 9 characters"
return 1
end
IF (len(@name)<2)
begin
-- print "The name must be at least 2 characters"
raiserror 20001 "The name must be at least 2 characters"
return 2
end
raiserror
有很多选项,但这应该能为您指明正确的方向。
编辑:添加了 return 个语句
我正在我的存储过程中获取一些参数。在对这些参数进行操作之前,我想验证它们,如果参数不符合要求,那么我想退出存储过程并显示错误消息。
示例代码:
create proc abcd
(
zip varchar(20),
name varchar(20),
network varchar(1)
)
-- validation section
IF (len(zip)<>5 OR LEN(zip)<>9)
begin
print "The zip must be of 5 or 9 characters"
<---- how to exit from here--->
end
IF (len(name)<2)
begin
print "The name must be of at least 2 characters"
<---- how to exit from here--->
end
---- main code
出现上述错误后,如何退出程序?
您可以使用 return
命令如下
-- validation section
IF (len(zip)<>5 OR LEN(zip)<>9)
begin
print "The zip must be of 5 or 9 characters"
return 1
end
IF (len(name)<2)
begin
print "The name must be of at least 2 characters"
return 2
end
return 0 -- on the end of procedure
要获取结果,您可以使用以下代码:
declare @ProcResult int
execute @ProcResult = abcd @Zip = ..., @name...
select @ProcResult
让我提出一些更改建议:
create procedure abcd
@zip varchar(20),
@name varchar(20),
@network varchar(1)
AS
-- validation section
IF (len(@zip)<>5 AND LEN(@zip)<>9)
begin
-- print "The zip must be of 5 or 9 characters"
raiserror 20000 "The zip must be of 5 or 9 characters"
return 1
end
IF (len(@name)<2)
begin
-- print "The name must be at least 2 characters"
raiserror 20001 "The name must be at least 2 characters"
return 2
end
raiserror
有很多选项,但这应该能为您指明正确的方向。
编辑:添加了 return 个语句