CREATE TABLE (SQL Server Compact Edition)

Crée une nouvelle table Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition).

Syntaxe

CREATE TABLE table_name 
   ( { < column_definition > | < table_constraint > } [ ,...n ] 
   ) 
< column_definition > ::= 
   { column_name data_type } 
   [ { DEFAULT constant_expression 
      | [ IDENTITY [ ( seed , increment ) ]
      ]
    } ] 
   [ ROWGUIDCOL ] 
   [ < column_constraint > [ ...n ] ]
< column_constraint > ::= 
   [ CONSTRAINT constraint_name ] 
   { [ NULL | NOT NULL ] 
      | [ PRIMARY KEY | UNIQUE ] 
      | REFERENCES ref_table [ ( ref_column ) ] 
      [ ON DELETE { CASCADE | NO ACTION } ] 
      [ ON UPDATE { CASCADE | NO ACTION } ] 
   }
< table_constraint > ::= 
   [ CONSTRAINT constraint_name ] 
   { [ { PRIMARY KEY | UNIQUE } 
      { ( column [ ,...n ] ) } 
      ]
   | FOREIGN KEY 
     ( column [ ,...n ] )
      REFERENCES ref_table [ ( ref_column [ ,...n ] ) ] 
      [ ON DELETE { CASCADE | NO ACTION } ]
      [ ON UPDATE { CASCADE | NO ACTION } ] 
   }

Arguments

  • table_name
    Nom de la nouvelle table. Les noms de tables doivent respecter les règles applicables aux identificateurs. L'argument table_name doit être unique dans la base de données. table_name peut contenir jusqu'à 128 caractères.
  • column_name ,
    Nom d'une colonne dans la table. Les noms de colonnes doivent respecter les règles applicables aux identificateurs et être uniques dans la table.

    Remarque :
    Les noms de colonnes des bases de données SQL Server Compact Edition ne doivent pas commencer par « __sys ». Par exemple, __sysobjects est un nom de colonne restreint.
  • data_type ,
    Spécifie le type de données de la colonne. Pour plus d'informations sur les types de données, consultez Types de données et RDA.
  • DEFAULT ,
    Spécifie la valeur de la colonne lorsqu'aucune valeur n'est explicitement fournie lors d'une insertion. Les définitions DEFAULT sont applicables à toute colonne, à l'exception de celles définies par la propriété IDENTITY. Les définitions DEFAULT sont supprimées lorsque la table l'est également. Vous pouvez utiliser une valeur constante comme valeur par défaut.
  • IDENTITY ,
    Indique que la nouvelle colonne est une colonne d'identité. Lorsqu'une ligne est ajoutée à la table, SQL Server Compact Edition affecte une valeur incrémentielle unique à la colonne. Les colonnes d'identité sont généralement utilisées avec des contraintes PRIMARY KEY afin de servir d'identificateur de ligne unique pour la table. Vous ne pouvez affecter la propriété IDENTITY qu'aux colonnes int. Vous ne pouvez créer qu'une colonne d'identité par table. Vous ne pouvez pas utiliser de valeurs par défaut liées et de contraintes DEFAULT avec une colonne d'identité. Vous devez spécifier à la fois la valeur de départ et l'incrément ou ni l'un ni l'autre. Si vous n'indiquez aucune des deux valeurs, la valeur par défaut est (1,1).
  • seed ,
    Valeur utilisée pour la première ligne chargée dans la table.
  • increment ,
    Valeur incrémentielle ajoutée à la valeur d'identité de la ligne précédemment chargée.
  • ROWGUIDCOL ,
    Indique que la nouvelle colonne est une colonne d'identificateur global unique de ligne. Vous ne pouvez définir qu'une colonne uniqueidentifier par table en tant que colonne ROWGUIDCOL. Vous ne pouvez affecter la propriété ROWGUIDCOL qu'à une colonne uniqueidentifier.

    ROWGUIDCOL génère automatiquement les valeurs des nouvelles lignes insérées dans la table.

  • CONSTRAINT ,
    Mot clé facultatif indiquant le début d'une définition de contrainte PRIMARY KEY, UNIQUE ou FOREIGN KEY. Les contraintes sont des propriétés particulières qui appliquent l'intégrité des données et créent des types spéciaux d'index pour la table et ses colonnes.
  • constraint_name ,
    Nom d'une contrainte. L'argument constraint_name est facultatif et doit être unique dans une base de données. Si l'argument constraint_name n'est pas spécifié, SQL Server Compact Edition génère un nom de contrainte.
  • NULL | NOT NULL ,
    Mots clés indiquant si les valeurs NULL sont autorisées dans la colonne. NULL n'est pas une contrainte à proprement parler mais peut être spécifié de la même manière que NOT NULL.
  • PRIMARY KEY ,
    Contrainte appliquant à l'aide d'un index unique l'intégrité d'entité pour une ou plusieurs colonnes spécifiques. Vous ne pouvez créer qu'une contrainte PRIMARY KEY par table.
  • UNIQUE ,
    Contrainte fournissant à l'aide d'un index unique l'intégrité d'entité pour une ou plusieurs colonnes spécifiques. Les colonnes d'une contrainte UNIQUE peuvent être NULL, mais une seule valeur NULL est autorisée par colonne. Une table peut posséder plusieurs contraintes UNIQUE.

    Remarque :
    SQL Server Compact Edition peut utiliser des index pour appliquer des contraintes PRIMARY KEY et UNIQUE. Il est recommandé de ne pas s'appuyer sur cette possibilité ni de modifier les index créés dans le cadre d'une contrainte.
  • FOREIGN KEY...REFERENCES ,
    Contrainte fournissant l'intégrité référentielle aux données de la colonne. Les contraintes FOREIGN KEY supposent que chaque valeur de la colonne existe dans la colonne spécifiée de la table référencée.
  • ref_table ,
    Nom de la table référencée par la contrainte FOREIGN KEY.
  • ( ref_column [ ,...n ] ) ,
    Colonne, ou liste de colonnes, de la table référencée par la contrainte FOREIGN KEY.
  • ON DELETE {CASCADE | NO ACTION} ,
    Spécifie l'opération appliquée à une ligne de la table créée, lorsque cette ligne possède une relation référentielle et que la ligne référencée est supprimée de la table parente. La valeur par défaut est NO ACTION.

    Si la valeur CASCADE est spécifiée, une ligne est supprimée de la table de référence lorsque la ligne référencée correspondante est supprimée de la table parente. Si la valeur NO ACTION est spécifiée, SQL Server Compact Edition renvoie une erreur et annule l'action de suppression appliquée à la ligne référencée dans la table parente.

  • ON DELETE {CASCADE | NO ACTION}
    Spécifie l'opération appliquée à une ligne de la table créée, lorsque cette ligne possède une relation référentielle et que la ligne référencée est mise à jour dans la table parente. La valeur par défaut est NO ACTION.

    Si la valeur CASCADE est spécifiée, la ligne est mise à jour dans la table de référence lorsque la ligne référencée correspondante est actualisée dans la table parente. Si la valeur NO ACTION est spécifiée, SQL Server Compact Edition renvoie une erreur et annule l'action de mise à jour appliquée à la ligne référencée dans la table parente.

  • column ,
    Colonne ou liste de colonnes, entre parenthèses, utilisée dans les contraintes de table et indiquant les colonnes impliquées dans leur définition.

Notes

Définitions de colonne

Vous devez spécifier au moins une définition de colonne lorsque vous créez une table.

Contraintes

  • Contraintes PRIMARY KEY
    • Une table ne peut contenir qu'une contrainte PRIMARY KEY.
    • Chaque contrainte PRIMARY KEY génère un index.
    • Toutes les colonnes définies dans une contrainte PRIMARY KEY doivent être paramétrées en tant que colonnes NOT NULL. Si la possibilité de valeur NULL n'est pas spécifiée, cette possibilité a pour valeur NOT NULL pour chacune des colonnes impliquées dans une contrainte PRIMARY KEY.
  • Contraintes UNIQUE
    • Chaque contrainte UNIQUE génère un index.
  • Contraintes FOREIGN KEY
    • Lorsqu'une valeur autre que NULL est tapée dans la colonne d'une contrainte FOREIGN KEY, cette valeur doit exister dans la colonne référencée, sinon un message d'erreur de violation de clé étrangère apparaît.
    • Les contraintes FOREIGN KEY peuvent référencer une autre colonne de la même table, créant ainsi une référence circulaire. Toutefois, les contraintes FOREIGN KEY ne permettent pas de créer une contrainte FOREIGN KEY circulaire.
    • La clause REFERENCES d'une contrainte FOREIGN KEY de niveau colonne ne peut répertorier qu'une colonne de référence. Celle-ci doit être du même type de données que la colonne sur laquelle la contrainte est définie.
    • La clause REFERENCES d'une contrainte FOREIGN KEY de niveau table doit posséder un nombre de colonnes de référence équivalent au nombre de colonnes figurant dans la liste des colonnes de la contrainte. En outre, le type de données de chaque colonne de référence doit être le même que celui de la colonne correspondante dans la liste des colonnes.
    • Les contraintes FOREIGN KEY ne peuvent référencer que des colonnes de contraintes PRIMARY KEY ou UNIQUE dans la table référencée. Les contraintes FOREIGN KEY ne peuvent pas référencer d'index uniques.
  • Informations supplémentaires sur les contraintes
    • Un index créé pour une contrainte ne peut pas être supprimé à l'aide de l'instruction DROP INDEX. Vous devez supprimer la contrainte à l'aide de l'instruction ALTER TABLE DROP CONSTRAINT.
    • Les noms de contraintes doivent respecter les règles appliquées aux identificateurs, sans toutefois pouvoir commencer par un signe dièse (#). En l'absence de mot clé CONSTRAINT et d'argument constraint_name, le système attribue automatiquement un nom à la contrainte.
    • En cas de violation de contrainte dans une instruction INSERT, UPDATE ou DELETE, celle-ci est interrompue.

Définitions DEFAULT

Une colonne ne peut posséder qu'une définition DEFAULT. Celle-ci peut contenir des valeurs constantes ou des fonctions constantes.

Règles de possibilité de valeur NULL dans une définition de table

La possibilité de valeur NULL d'une colonne détermine si cette colonne peut contenir une valeur NULL. Une valeur NULL n'indique pas une valeur égale à zéro ou vierge. Elle signifie qu'aucune entrée n'a été réalisée ou qu'une valeur NULL explicite a été fournie, et correspond généralement à une valeur inconnue ou inapplicable.

Exemple

Les exemples suivants illustrent comment réaliser les opérations suivantes :

  1. Création d'une table de deux colonnes, dont une colonne d'identité en guise de PRIMARY KEY
  2. Création d'une table d'une colonne possédant une contrainte PRIMARY KEY
  3. Création d'une table dont l'une des colonnes référence une colonne d'une autre table
CREATE TABLE MyCustomers (CustID int IDENTITY (100,1) PRIMARY KEY, CompanyName nvarchar (50))

CREATE TABLE MyCustomers2 (CustID int CONSTRAINT pkCustId PRIMARY KEY)

CREATE TABLE MyOrders (OrderID int, CustID int REFERENCES MyCustomers(CustID))

Voir aussi

Aide et information

Assistance sur SQL Server Compact Edition