La syntaxe SQL pour vérifier si l'INSERTION a été couronnée de succès?

Je suis en train de travailler sur un projet scolaire que me veut introduire de nouvelles valeurs dans une table de base de données et ensuite de l'impression d'un message en fonction de si oui ou non l'INSERTION a été couronnée de succès.

La question qui va comme ceci:

Écrire un script qui tente d'insérer une nouvelle catégorie nommée “Guitares”
dans la table Catégories. Si l'insertion est réussie, le script
devrait afficher ce message: SUCCÈS: le Record a été inséré.

Si la mise à jour échoue, le script doit afficher un message
quelque chose comme ceci: ÉCHEC: Enregistrement n'a pas été inséré. Erreur 2627:
La Violation de la contrainte de CLÉ UNIQUE 'UQ_Categori_8517B2E0A87CE853'.
Impossible d'insérer une clé en double dans l'objet 'dbo.Catégories'. Le double
valeur de la clé est (Guitares).

Actuellement, cette table Catégories se compose de 2 colonnes: code catégorie et le nom de la Catégorie. Il est rempli avec les valeurs

1     Guitars
2     Basses
3     Drums
4     Keyboards 

Évidemment les Guitares catégorie que la question veut que vous insérez est déjà là, donc je suppose que le point de l'ensemble de la question est de le faire pour imprimer le message d'erreur. La logique de la question semble assez simple; insérer les Guitares catégorie dans la table. Si l'insertion a été couronnée de succès, d'impression tel-et-tel. Si elle a échoué, imprimer soi-and-so. Je ne suis pas sûr de la syntaxe. Voici le code SQL que j'ai eu jusqu'à présent:

USE MyGuitarShop;

INSERT INTO Categories (CategoryID, CategoryName)
VALUES (5, 'Guitars')

IF (          ) --insert is successful
    PRINT 'SUCCESS: Record was inserted'
ELSE --if insert is unsuccessful
    PRINT 'FAILURE: Record was not inserted.'
    PRINT 'Error 2627: Violation of UNIQUE KEY constraint 'UQ__Categori__8517B2E0A87CE853'.' 
    PRINT 'Cannot insert duplicate key in object 'dbo.Categories'. The duplicate key value is (Guitars).'

Je me sens comme il y en avait une sorte d'équation booléenne que SI l'instruction (SI INSÉREZ = succès, SI le succès = TRUE, etc.) mais je ne suis pas sûr de la façon de l'écrire. Suis-je sur la bonne voie?

EDIT: je devrais mentionner que je suis à l'aide de SQL Server 2012

Êtes-vous à l'aide de mysql ou sql server? Ils ne sont pas la même chose.
SQL Server 2012 pour être exact

OriginalL'auteur EJF | 2014-02-03