Sql server sql raiseerror error.number在VB中出错
我编写了一个T-SQL查询,其中包括对有效EmployeeNo的测试。如果EmployeeNo无效,我将执行以下操作:Sql server sql raiseerror error.number在VB中出错,sql-server,tsql,raiserror,Sql Server,Tsql,Raiserror,我编写了一个T-SQL查询,其中包括对有效EmployeeNo的测试。如果EmployeeNo无效,我将执行以下操作: RAISERROR(5005, 10, 1, N'Invalid Employee No') return @@Error 回到VB.Net中,我测试了sql异常,发现当员工编号无效时,错误号不是我预期的5005,而是2732 对此有何解释 谢谢。您不能在自己的代码中引发错误5005。只有DB引擎可以这样做 错误2732表示您无法引发小于50000的消息 您不能在自己的代码中
RAISERROR(5005, 10, 1, N'Invalid Employee No')
return @@Error
回到VB.Net中,我测试了sql异常,发现当员工编号无效时,错误号不是我预期的5005,而是2732
对此有何解释
谢谢。您不能在自己的代码中引发错误5005。只有DB引擎可以这样做 错误2732表示您无法引发小于50000的消息
您不能在自己的代码中引发错误5005。只有DB引擎可以这样做 错误2732表示您无法引发小于50000的消息
如果你接受了更多的问题答案,你就更有可能在未来的问题上得到很多高质量的答案。您可以返回到以前的问题并单击最有用答案旁边的勾号。感谢您的建议,Daniel.5005是SQL Server错误代码,您的代码中有.Net framework错误。如果您想保留原始错误#-将其传递到错误文本中,然后在代码中解析出来如果您接受更多问题的答案,您就更有可能在将来的问题上获得许多高质量的答案。您可以返回到以前的问题并单击最有用答案旁边的勾号。感谢您的建议,Daniel.5005是SQL Server错误代码,您的代码中有.Net framework错误。如果要保留原始错误#,请在错误文本中传递它,然后在>50000的代码中解析它(如果先使用sp_addmessage)。如果您不使用RAISERROR('A string'…),那么如果您首先使用sp_addmessage,它总是50000>50000。如果你做了RAISERROR('一个字符串'…),那么它总是50000
SELECT description FROM sys.sysmessages m WHERE m.error = 2732 AND msglangid = 1033
Error number %ld is invalid. The number must be from %ld through %ld and it cannot be 50000.