web-dev-qa-db-fra.com

Je suis incapable d'utiliser Jet SQL Server 2008 R2

SQL Server 2008 R2 Management Studio n'a pas reconnu mon lancer dans l'exemple ci-dessous, dit-il

syntaxe incorrecte près de lancer

J'essaie de lancer une erreur ici, je peux donc le gérer sur mon site Web lorsque quelqu'un insère deux fois la même valeur.

Begin Try
 insert into BusinessID (BusinessID) values (@ID)
 insert into BusinessID (BusinessID) values (@ID)

End Try

Begin Catch

Print 'PK already exist'
THROW
End Catch
21
user2405574

THROW _ instruction est introduite dans SQL Server 2012

http://msdn.microsoft.com/en-us/library/ee677615.aspx

Vous pouvez utiliser RAISERROR à la place.

http://msdn.microsoft.com/en-us/library/483588bd-021b-4eae-b4e-216268003E79 (v = SQL.105)

BEGIN CATCH
    DECLARE @ErrorMessage NVARCHAR(4000);
    DECLARE @ErrorSeverity INT;
    DECLARE @ErrorState INT;

    SELECT 
        @ErrorMessage = ERROR_MESSAGE(),
        @ErrorSeverity = ERROR_SEVERITY(),
        @ErrorState = ERROR_STATE();

    RAISERROR (@ErrorMessage, -- Message text.
               @ErrorSeverity, -- Severity.
               @ErrorState -- State.
               );
END CATCH;
42
Nenad Zivkovic