Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
存储过程SQL错误不工作_Sql_Sql Server 2008_Stored Procedures - Fatal编程技术网

存储过程SQL错误不工作

存储过程SQL错误不工作,sql,sql-server-2008,stored-procedures,Sql,Sql Server 2008,Stored Procedures,我正在尝试在SQLServer2008中创建一个存储过程。我有编程经验,但我不明白这一点。。。也许我只是看得太久了!第一个例子提出了错误,但第二个没有…任何想法 ALTER PROC master_class --EXTERNAL VARIABLES @iSFname varchar(20), @iSLname varchar(20), @iDOB date AS --INTERNAL VARIABLES DECLARE @AGE int DECLARE @ReturnValu

我正在尝试在SQLServer2008中创建一个存储过程。我有编程经验,但我不明白这一点。。。也许我只是看得太久了!第一个例子提出了错误,但第二个没有…任何想法

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(1)
(奇怪的是,
varchar
默认值为30,在
cast
中两者都默认值为30),任何反馈都会很好


干杯,劳伦斯……工作!:)
Declare class nvarchar = 'science'

Select @class

's'