Pourquoi cela donne-t-il une erreur?
IF(SCHEMA_ID('AM') IS NULL) BEGIN CREATE SCHEMA AM GO END
Cela marche:
IF(SCHEMA_ID('AM') IS NULL) BEGIN Print 'null' END
Et l'instruction create schema sur une ligne fonctionne, mais pas le schéma create à l'intérieur de l'instruction if. Donc, ils travaillent tous les deux individuellement, mais pas set.
CREATE SCHEMA
est l'une de ces instructions qui doit être seule dans le lot.
Essayer:
IF (SCHEMA_ID('AM') IS NULL) BEGIN EXEC ('CREATE SCHEMA [AM]') END
Pour plus d'informations, voir: Pourquoi ne puis-je pas utiliser "create schema" dans un bloc begin / end dans SQL Management Studio?