What is the syntax meaning of RAISERROR()

前端 未结 5 2034
情歌与酒
情歌与酒 2021-02-02 05:39

I just created a Instead After Trigger whose syntax is given below:

Create trigger tgrInsteadTrigger on copytableto
Instead of Insert as 
    Declare @store_name         


        
5条回答
  •  -上瘾入骨i
    2021-02-02 05:55

    It is the severity level of the error. The levels are from 11 - 20 which throw an error in SQL. The higher the level, the more severe the level and the transaction should be aborted.

    You will get the syntax error when you do:

    RAISERROR('Cannot Insert where salary > 1000').
    

    Because you have not specified the correct parameters (severity level or state).

    If you wish to issue a warning and not an exception, use levels 0 - 10.

    From MSDN:

    severity

    Is the user-defined severity level associated with this message. When using msg_id to raise a user-defined message created using sp_addmessage, the severity specified on RAISERROR overrides the severity specified in sp_addmessage. Severity levels from 0 through 18 can be specified by any user. Severity levels from 19 through 25 can only be specified by members of the sysadmin fixed server role or users with ALTER TRACE permissions. For severity levels from 19 through 25, the WITH LOG option is required.

    state

    Is an integer from 0 through 255. Negative values or values larger than 255 generate an error. If the same user-defined error is raised at multiple locations, using a unique state number for each location can help find which section of code is raising the errors. For detailed description here

提交回复
热议问题