views:

121

answers:

1

I wrote a T-SQL query which includes a test for valid EmployeeNo. If the EmployeeNo is not valid, I do the following:

RAISERROR(5005, 10, 1, N'Invalid Employee No')
return @@Error

Back in VB.Net I test the sql exception and found that when the Employee No is invalid the error.number is not 5005 as I would expect, but 2732.

What is the explanation for this?

Thank you.

A: 

You can't raise an error 5005 in your own code. Only the DB Engine can do this.

Error 2732 is the error that says you can't raise messages < 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.
gbn
Thank you. What error number range can I raise?
Melody Friedenthal
> 50000 if you use sp_addmessage first. If you do RAISERROR ('A string'...) then it's always 50000
gbn
Thank you very much, gbn!
Melody Friedenthal