SQL Server RAISERROR (Română)

Rezumat: în acest tutorial, veți învăța cum să utilizați SQL Server RAISERROR declarație pentru a genera definite de utilizator mesaje de eroare.

dacă dezvoltați o aplicație nouă, ar trebui să utilizați instrucțiunea THROW.,

SQL Server RAISEERROR declarație de ansamblu

RAISERROR declarație vă permite de a genera propriul dvs. de mesaje de eroare și de a reveni aceste mesaje înapoi la aplicația folosind același format ca o eroare de sistem sau un mesaj de avertizare generate de SQL Server Database Engine. În plus, instrucțiunea RAISERROR vă permite să setați un anumit id de mesaj, nivel de severitate și stare pentru mesajele de eroare.,

următoarele ilustrează sintaxa RAISERROR declarație:

Să examinăm sintaxa RAISERROR pentru o mai bună înțelegere.

message_id

message_id este o definite de utilizator un mesaj de eroare de numărul stocat în sys.messages catalog de vedere.pentru a adăuga un nou număr de mesaj de eroare definit de utilizator, utilizați procedura stocată sp_addmessage. Un număr de mesaj de eroare definit de utilizator ar trebui să fie mai mare de 50.000., În mod implicit, RAISERROR declarație foloseste message_id 50.000 de dolari pentru a ridica o eroare.,

următoarea declarație adaugă un mesaj de eroare la sys.messages vizualizare:

Pentru a verifica introduce, puteți folosi următoarea interogare:

Code language: SQL (Structured Query Language) (sql)

Pentru a utiliza această message_id, executa RAISEERROR declarație, după cum urmează:

Code language: SQL (Structured Query Language) (sql)

Aici este de ieșire:

Code language: SQL (Structured Query Language) (sql)

Pentru a elimina un mesaj din sys.messages, utilizați procedura stocată sp_dropmessage., De exemplu, următoarea declarație șterge mesajul id-50005:

Code language: SQL (Structured Query Language) (sql)

message_text

message_text este o definite de utilizator mesaj cu formatare ca printf funcția în C standard library. message_text poate fi de până la 2.047 de caractere, ultimele 3 caractere sunt rezervate pentru elipsă (…). Dacă message_text conține 2048 sau mai mult, acesta va fi trunchiat și este căptușit cu o elipsă.,

Când specificați message_text, RAISERROR declarație folosește message_id 50000 de a ridica un mesaj de eroare.

următorul exemplu folosește RAISERROR declarație pentru a ridica o eroare cu un mesaj text:

Code language: SQL (Structured Query Language) (sql)

ieșire va arata astfel:

Code language: SQL (Structured Query Language) (sql)

severitate

nivelul De severitate este un număr întreg între 0 și 25, cu fiecare nivel reprezentând de gravitatea erorii.

Code language: SQL (Structured Query Language) (sql)

stat

statul este un număr întreg de la 0 la 255., Dacă ridicați aceeași eroare definită de utilizator în mai multe locații, puteți utiliza un număr de stare unic pentru fiecare locație pentru a face mai ușor să găsiți care secțiune a codului cauzează Erorile. Pentru majoritatea implementărilor, puteți utiliza 1.

, CU opțiune

opțiune poate fi LOG, NOWAIT sau SETERROR:

  • WITH LOG busteni de eroare în jurnalul de erori și jurnal aplicație pentru instanță de SQL Server Database Engine.,
  • WITH NOWAIT trimite imediat mesajul de eroare către client.
  • WITH SETERROR setează ERROR_NUMBER și @@ERROR valori message_id sau 50000, indiferent de nivelul de severitate.

SQL Server RAISERROR exemple

Să luăm câteva exemple de utilizare RAISERROR declarație pentru a obține o mai bună înțelegere.,

O) Folosind SQL Server RAISERROR cu ÎNCERCE bloc CATCH exemplu

În acest exemplu, vom folosi RAISERROR în interiorul unui TRY bloc pentru că executarea a sari de la asociat CATCH bloc. În interiorul CATCH bloc, vom folosi RAISERROR pentru a reveni la informațiile de eroare care a invocat CATCH bloc.,

Aici este de ieșire:

Code language: SQL (Structured Query Language) (sql)

B) Folosind SQL Server RAISERROR declarație cu o dinamică mesaj text exemplu

următorul exemplu arată cum să utilizați o variabilă locală pentru a oferi mesaj text pentru un RAISERROR declarație:

ieșire este după cum urmează:

Code language: SQL (Structured Query Language) (sql)

Când să utilizeze RAISERROR declarație

utilizare RAISERROR declarație în următoarele scenarii:

  • Depanarea Transact-SQL cod.
  • returnați mesajele care conțin text variabil.
  • examinați valorile datelor.,
  • pentru ca executarea să sari de la un TRY bloc asociate CATCH bloc.
  • returnați informațiile de eroare din blocul CATCH către apelanți, fie apelând lot, fie aplicație.

în acest tutorial, veți învăța cum să utilizați SQL Server RAISERROR declarație pentru a genera mesaje de eroare definite de utilizator.

Share

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *