RaiseError dans SQL Server
Dans les versions précédentes, nous avons soulevé des erreurs en t-sql comme:
RAISERROR 50000 'My Error Message'
Dans la dernière version de SQL Server cette syntaxe a été abandonnée et les remplacer par de la RaiseError () syntaxe.
Je voudrais avoir une méthode générique de la levée des erreurs, et le mieux que je pouvais venir jusqu'à présent est:
sp_addmessage @msgnum = 50001,
@severity = 10,
@msgtext = N'My Error Message', @replace = 'REPLACE';
RAISERROR (50001, 10, 1, 'This error message is not displayed')
Mais je ne peux pas aller et de créer un message d'erreur avec sp_addmessage pour chaque message, parce qu'il y a 1000.
Quelle est la meilleure façon de soulever des messages avec un message personnalisé?
source d'informationauteur Cameron Castillo
Vous devez vous connecter pour publier un commentaire.
Cela semble fonctionner:
En fait,
RAISERROR
a été dépréciée en faveur deTHROW
depuis SQL Server 2012. Aller ici pour plus d'informations. L'un des aspects les plus amusants, c'est qu'il est Raiserror et pas RaiseError menant à celui-ci étant appelé "augmenter ror" dans certains cercles.Échantillon de BOL:
--Utiliser le s% wild card de sorte que vous pouvez passer dans les messages que vous le souhaitez à partir de votre stockées procs:
if Not Exists (Select * from SysMessages where error = 62000)
EXEC sp_addmessage @msgnum = 62000, @severity = 16,
@msgtext = N'%s',
@lang = 'us_english'
--Puis dans votre sp, vous pouvez augmenter cette erreur:
RAISERROR (62000,16,1,'Erreur et/ou l'Entreprise Erreur le Texte va ici')