WERFEN vs. RAISERROR
Ich versuche, führen Sie den folgenden code:
THROW 51051, 'I come from the THROW construct :)', 1 ;
Den Fehler bin ich immer:
Could not find stored procedure 'THROW'.
Nicht die THROW
Verfahren, ein System Verfahren? Warum kann Sie nicht finden?
Furthhermore, was ist der Unterschied zwischen unsing THROW
und ErrorState
? Ist einer der älteren/neueren/besser als der andere?
Und was tun "ErrorSeverity" und "ErrorState" bedeutet ErrorState
? Kann ich definieren wie ich will, oder Sie sind vordefiniert?
- Welche version verwenden Sie? Sie haben getaggt, und zwar 2008 und 2012.
- Wir sind mit 2008 R2
- Das ist, warum Sie immer sind, die Fehler verursachen
THROW
ist von SQL2012 ab.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, es ist, aber erst seit 2012. Wenn Sie 2008R2, dann ist es gar nicht gibt.
Den Definitionen des Staates und der Schweregrad sind klar dokumentiert in der raiserror Dokumentation
Folgendes zu Lesen: Unterschiede Zwischen RAISERROR WERFEN und in Sql Server
Beide RAISERROR und WERFEN Anweisungen werden verwendet, um Fehler in Sql Server. Die Reise des RAISERROR gestartet von Sql Server 7.0, wo da die Reise von WERFEN - Anweisung hat erst begonnen, mit Sql Server 2012. offensichtlich, Microsoft suggerieren uns, um zu starten mit THROW-Anweisung anstelle der RAISERROR-Anweisung. WERFEN Erklärung scheint einfach zu sein und einfach zu bedienen als RAISERROR.
RAISERROR can’t be used in the Sql Server 2014’s Natively compiled Stored Procedures
. Damit alle es zu sein schien, in die Richtung der Verwendung von mehrTHROW