Notions de base sur la création et la modification d'une table
Après avoir conçu une base de données, vous pouvez créer les tables qui stockeront les données dans la base. Même si les données sont généralement stockées dans des tables permanentes, vous pouvez également créer des tables temporaires. Les tables elles-mêmes se trouvent dans les fichiers de base de données jusqu'à ce qu'elle soient supprimées, et sont à la disposition de tout utilisateur doté des autorisations requises.
Propriétés d'une table
Vous pouvez définir jusqu'à 1 024 colonnes par table. Les noms de tables et de colonnes doivent respecter les règles relatives aux identificateurs ; ils doivent être uniques au sein d'une table donnée, mais le même nom de colonne peut être utilisé dans différentes tables de la même base de données. Pour plus d'informations, consultez Identificateurs et Utilisation des identificateurs comme noms d'objet. Vous devez également définir un type de données pour chaque colonne. Pour plus d'informations, consultez Affectation d'un type de données à une colonne.
Même si les noms de tables doivent être uniques pour chaque schéma d'une base de données, vous pouvez créer plusieurs tables de même nom à condition de préciser un schéma différent pour chacune d'elles. Vous pouvez créer deux tables nommées employees et nommer le schéma de l'une Jonathan et le schéma de l'autre Sarah. Lorsque vous serez amené à utiliser l'une des tables employees, vous pourrez les distinguer en spécifiant le schéma en même temps que le nom de la table.
Pour créer une table
Tables temporaires
Celles-ci sont semblables aux tables permanentes, à ceci près qu'elles sont stockées dans tempdb et qu'elles sont automatiquement supprimées lorsqu'elles ne sont plus utilisées.
Il existe deux types de tables temporaires : local et global. Elles se différencient par leur nom, leur visibilité et leur disponibilité. Le premier caractère du nom des tables temporaires locales est un signe dièse (#) unique. Ces tables sont visibles uniquement à la connexion courante de l'utilisateur et sont supprimées dès que l'utilisateur se déconnecte de l'instance de SQL Server. En revanche, le nom des tables temporaires globales commence par deux signes dièse (##) ; ces tables sont visibles à tout utilisateur après avoir été créées et ne sont supprimées qu'une fois que l'ensemble des utilisateurs ayant fait référence à la table se sont déconnectés de l'instance de SQL Server.
Ainsi, si vous créez la table employees, elle est accessible à toute personne possédant les autorisations de sécurité sur la base de données permettant son utilisation, et ce jusqu'à sa suppression. Si la table temporaire locale #employees est créée au cours d'une session de base de données, cette table ne peut être utilisée que dans le cadre de cette session, et elle est supprimée dès que vous vous déconnectez. En revanche, si vous créez la table temporaire globale ##employees, n'importe quel utilisateur de la base de données peut l'utiliser. Si aucun autre utilisateur ne se sert de la table après que vous l'ayez créée, elle est supprimée au moment où vous vous déconnectez. Si un autre utilisateur se sert de la table après que vous l'ayez créée, SQL Server la supprime une fois que vous vous déconnectez et que toutes les autres sessions ont arrêté de l'utiliser activement.
De nombreuses utilisations de tables temporaires peuvent être remplacées par des variables possédant le type de données table. Pour plus d'informations sur l'utilisation des variables table, consultez table (Transact-SQL).
Modification de tables
Dès qu'une table a été créée, vous pouvez modifier un bon nombre d’options définies lors de sa création initiale, à savoir :
Vous pouvez ajouter, modifier ou supprimer des colonnes. Par exemple, il est possible de modifier le nom d'une colonne, sa longueur, son type de données, sa précision, son échelle et son paramètre de possibilité de valeur nulle, même s'il existe certaines restrictions. Pour plus d'informations, consultez Modification des propriétés d'une colonne.
Si la table est une table partitionnée, elle peut être repartitionnée, ou des partitions individuelles peuvent y être ajoutées ou supprimées. Pour plus d'informations, consultez Modification de tables et d'index partitionnés et Transfert efficace de données à l'aide du commutateur de partitionnement.
Vous pouvez ajouter ou supprimer des contraintes PRIMARY KEY et FOREIGN KEY.
Vous pouvez ajouter ou supprimer des contraintes UNIQUE et CHECK et des définitions DEFAULT, ainsi que des objets.
Vous pouvez ajouter ou supprimer une colonne d'identification à l'aide de la propriété IDENTITY ou ROWGUIDCOL. Vous pouvez également ajouter ou supprimer la propriété ROWGUIDCOL dans une colonne existante mais, dans une table, une seule colonne à la fois peut présenter la propriété ROWGUIDCOL.
Une table et des colonnes sélectionnées dans la table peuvent être inscrites en vue de l'indexation de texte intégral.
Pour plus d'informations sur les modifications qu'il est possible d'apporter à une table, consultez ALTER TABLE (Transact-SQL).
Le nom ou le schéma d'une table peuvent également être modifiés. Dans ce cas, vous devez aussi modifier le nom de la table dans tous les déclencheurs, procédures stockées, scripts Transact-SQL ou tout autre code de programmation qui utilise l'ancien nom ou schéma de la table.
Pour renommer une table
Propriétés de la table (Visual Database Tools)
Pour modifier le schéma d'une table