SQL Server存储过程中的Raiserror

时间:2015-04-13 07:41:44

标签: sql-server stored-procedures

我已经在sys.message中创建了错误。问题是当我将它添加到我的存储过程时,它不会将消息传回给我。如果id不存在,存储过程将检查某个isacode中是否存在id,应该触发raiserror。

AS
BEGIN 
    DECLARE @Result as int 

    IF EXISTS(SELECT ID, areacode
              FROM Table1 
              WHERE ID = @ID
                AND areacode = @areacode)
        RAISERROR (50030, 1, 1)

BEGIN  
   INSERT INTO Table2 ( //columns go here )
   VALUES ( //values for columns )
END

2 个答案:

答案 0 :(得分:2)

您的严重程度会降低,请尝试将其设置得更高:  raiserror(50030,16,1)

顺便说一下。为什么你在插入之前尝试提出错误?

https://msdn.microsoft.com/en-us/library/ms178592.aspx

答案 1 :(得分:1)

DECLARE @Result as int 

IF EXISTS(SELECT 1 
      FROM Table1 
      WHERE ID=@ID
      AND areacode=@areacode
      )
BEGIN  
    INSERT INTO Table2 (/* columns go here */)
    VALUES (/* values for columns */)
END ELSE BEGIN
    RAISERROR (50030,1,1)
END