gpt4 book ai didi

sql - 存储过程 SQL raiserror 不工作

转载 作者:行者123 更新时间:2023-12-04 02:44:11 25 4
gpt4 key购买 nike

我正在尝试在 SQL Server 2008 中创建一个存储过程。我有编程经验,但我无法弄清楚...也许我只是看它太久了!第一个示例引发了错误,但第二个示例没有...任何想法...

ALTER PROC master_class
--EXTERNAL VARIABLES
@iSFname varchar(20),
@iSLname varchar(20),
@iDOB date
AS
--INTERNAL VARIABLES
DECLARE @AGE int
DECLARE @ReturnValue int
DECLARE @class nvarchar

--get student age
SELECT @AGE = 32
SELECT @class = 'science'

--ERROR CHECKS
--check ward age rule
IF (@AGE > 18)
BEGIN
RAISERROR('This Person cannot be submitted to this class!', 16, 1)
RETURN 99
END

然后执行

  EXECUTE [School].[dbo].[master_class] 'john', 'o connor', '08-01-1981'

以上将返回“此人无法提交给此类!”。如果我将 if 条件更改为

IF (@AGE > 18 AND @class = 'science')
BEGIN
RAISERROR('This Person cannot be submitted to this class!', 16, 1)
RETURN 99
END

它会在不该执行的时候执行!!!!...这是为什么,当@class = 'science' 为真且年龄超过 18 岁为真时

任何反馈都会很棒

最佳答案

nvarchar 没有长度默认为 nvarchar(1)(奇怪的是,varchar 默认为 30,并且在 Actor )

Declare class nvarchar = 'science'

Select @class

's'

关于sql - 存储过程 SQL raiserror 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19201817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com