(SQL 2005) Est-il possible pour un raiserror de terminer un proc stocké? Par exemple, dans un système volumineux, nous avons une valeur qui n'était pas attendue dans une colonne spécifique. Dans un déclencheur de mise à jour si vous écrivez:Terminaison d'instruction SQL à l'aide de RAISERROR
si elle existe (select * from inséré où testcol = 7) commencer RaiseError ('Mon erreur personnalisée', 16, 1) fin
les informations de mise à jour est toujours appliqué. si vous exécutez
si elle existe (select * from inséré où testcol = 7) commencent sélectionner 1/0 fin
une division par 0 erreur est levée qui se termine en fait la mise à jour. est-il possible de faire cela avec un raiseerror afin que je puisse récupérer des messages d'erreur personnalisés?
Aussi ce lien http://support.microsoft.com/kb/45581 – pjp
Est-ce seulement valable pour une transaction? ou sont déclencheurs trasactional? – Bob
A partir du lien que j'ai posté 'Lorsque dans un déclencheur, il n'est pas nécessaire d'avoir une instruction BEGIN TRANSACTION correspondante car chaque instruction SQL qui n'est pas dans une transaction explicite est effectivement une transaction à une seule instruction.' – pjp