Takaisin: SQL-Palvelin Opetusohjelma Aloittelijoille ja Ammattilaisille.
Miten Nostaa Virheitä Nimenomaisesti SQL Server
tässä artikkelissa, Aion keskustella siitä, miten nostaa virheitä nimenomaisesti SQL Server joitakin esimerkkejä yhdessä keskustelemme myös eri vaihtoehtoja, että voimme käyttää Raiserror SQL Server., Lue Edellinen artikkeli, jossa keskustelimme reaaliaikainen esimerkki Raise Error system-toiminto. Osana tätä kirjoitusta aiomme keskustella seuraavista huomautuksista.
- miten nostaa virheitä eksplisiittisesti SQL Server-palvelussa?
- Nostaa virhe käyttämällä RAISERROR lausuman SQL-Palvelin
- Nostaa Virhe käyttämällä heittää lausuman SQL-Palvelin
- Mitä eroa on RAISERROR toiminto ja heittää lausunnon?
- RaiseError-lausuman ymmärtäminen Lokivaihtoehdolla.
- virheiden nostaminen tallentamalla Virheilmoitus Sysmessage-taulukkoon.,
miten SQL Server-palvelimessa voi nostaa virheitä?
yleensä ohjelmassa esiin tulleita virheitä ennalta määritellyistä syistä, kuten numeron jakaminen nollalla, ensisijaisen avaimen rikkominen, tarkistusrikkomus, viitteellisen eheyden rikkominen jne. Mutta jos haluamme, voimme myös nostaa virheen ohjelmissasi kahdella eri tavalla.,
- Raiserror selvitys
- heittää lausunto (uusi ominaisuus SQL Server 2012)
Raiserror Syntaksi: Raiserror (errorid/errormsg, VAKAVUUS, valtio)
heittää Syntaksi: Heittää errorid, errormsg, valtion
Esimerkki: Nosta virhe käyttämällä RAISERROR lausuman SQL Server.
seuraavassa tallennettu Menettely, nostamme virhe, kun jako on 1 käyttämällä RAISERROR lausunto.,
esimerkki toteutuksesta: EXEC spDivideBy1 10, 1
esimerkki: nosta virhe heittolausunnon avulla SQL Server.
edellä kuvattu menettely voi myös olla uudelleen avulla heittää lausuman paikka Raiserror kuten seuraavat.,
TOTEUTUS: EXEC spDivideBy2 10, 1,
Mitä eroa on RAISERROR toiminto ja heittää lausunnon?
Jos emme käytä mitä tahansa kaksi lausumaa ohjelma nostaa virhettä ilman try-ja catch-lohkot, RAISERROR lausunnon jälkeen nostamalla virhe tulee edelleen jatkaa ohjelman suoritusta, kun taas heittää lausunto tulee lopettaa ohjelman poikkeuksellisen linjalla., Mutta jos niitä käytetään try block molemmat käyttäytyvät samalla tavalla, että is hyppää suoraan kiinni block mistä virhe nostettiin.
Myös RAISERROR lausunto tulee antaa mahdollisuus täsmentää VAKAVUUS virhe viesti, että meillä ei ole tämä vaihtoehto, jos heittää julkilausuman, jossa kaikki virheilmoituksia on oletuksena VAKAVUUS 16.,
jos kyseessä on RAISERROR, on mahdollista kirjata virheviesti palvelimen lokitiedostoon käyttämällä lokivaihtoehtoa, kun taas emme voi tehdä tätä heittoilmoituksen tapauksessa.
tapauksessa heittää, meidän täytyy määrittää sekä errorid ja virheilmoituksen nostaa virhe-kun taas tapauksessa RAISERROR voimme määrittää, joko id tai viestin., Jos tunnus ei ole määritelty oletuksena virhe tunnus on 50000, mutta jos haluamme määrittää vain virhe tunnus ensin meidän täytyy lisätä virhe viesti sysmessage taulukko määrittämällä ainutlaatuinen id pöytään.
OPTIONS WITH RAISERROR STATEMENT:
With Log: By using this option in the RAISERROR statement We can recording the error message in the sql Server log file SQL Server log file so that if the errors are fatal database administrator can care of fixing those Error.,
jos virheen vakavuus on suurempi kuin 20, jossa täsmennetään ”With Log” – vaihtoehto on pakollinen. Testata tätä MUUTTAA menettelyn spDivideBy1 muuttamalla raiserror julkilausuman johdosta
RAISERROR (’JAKAJA VOI OLLA YKSI’, 16, 1) LOG
Alla on täydellinen menettely,
Nyt suorittaa menettely ja aina, kun annetaan virhe herättää voimme katsella virheilmoituksia kirjataan SQL Server log-tiedosto. Voit katsoa lokitiedostoa., Objekti Explorerissa siirry hallintasolmuun SQL Server log node ja Avaa nykyinen lokitiedosto kaksoisnapsauttamalla sitä alla esitetyllä tavalla.,g
RAISERROR (’NUMERO %d ei VOI OLLA JAETTUNA %d’,16, 1, @No1, @No2 -)LOG
Nostaa Virheitä tallentamalla Virheilmoitus SysMessage taulukko:
Voimme nostaa virhe antamatta virheilmoitus RAISERROR lausunnon, mutta tilalle virhe viesti, joka meidän täytyy määrittää virhe tunnus ja määritä virhe tunnus että meidän täytyy tallentaa, että virhe tunnus kanssa virheilmoitus SysMessage taulukko käyttämällä järjestelmä on määritelty menettely ”SP_ADDMESSAGE”., 16,”DIVIDE BY ONE ERROR reasoned”
now alter the procedure by changing the RAISERROR statement as following
RAISERROR (51000,16, 1)WITH LOG
Deleting the error messages from sysmessages table:
syntaksi: sp_dropmessage <Error id>
esimerkki: Exec sp_dropmessage 51000
seuraavassa artikkelissa aion keskustella SQL Serverin try-catch-toteutuksesta SQL Serverin virheen käsittelemiseksi., Tässä, tässä artikkelissa, yritän selittää, miten nostaa virheitä nimenomaisesti SQL Server askel askeleelta joitakin esimerkkejä.