Copier des colonnes d'une table vers une autre (Moteur de base de données)
Cette rubrique explique comment copier des colonnes d'une table vers une autre, en copiant uniquement la définition de la colonne ou la définition et les données dans SQL Server 2012 à l'aide de SQL Server Management Studio ou de Transact-SQL.
Dans cette rubrique
Avant de commencer :
Limitations et restrictions
Sécurité
Pour copier des colonnes à l'aide de :
SQL Server Management Studio
Transact-SQL
Avant de commencer
Limitations et restrictions
Lorsque vous copiez une colonne contenant un type de données alias d'une base de données dans l'autre, le type de données alias risque de ne pas être disponible dans la base de données cible. En pareil cas, la colonne se voit assigner le type de données de base le plus proche disponible dans cette base de données.
Sécurité
Autorisations
Requiert une autorisation ALTER sur la table.
[Haut de la page]
Utilisation de SQL Server Management Studio
Pour copier des définitions de colonne d'une table vers une autre
Ouvrez la table contenant les colonnes à copier et celle dans laquelle vous souhaitez les copier en cliquant avec le bouton droit sur les tables, puis cliquez sur Conception.
Cliquez sur l'onglet de la table contenant les colonnes que vous souhaitez copier et sélectionnez ces colonnes.
Dans le menu Edition, cliquez sur Copier.
Cliquez sur l'onglet de la table dans laquelle vous souhaitez copier les colonnes.
Sélectionnez la colonne qui doit suivre les colonnes insérées, puis cliquez sur Coller dans le menu Edition.
Pour copier des données d'une table vers une autre
Conformez-vous aux instructions relatives à la copie des définitions de colonne ci-dessus.
[!REMARQUE]
Avant de commencer à copier des données d'une table vers une autre, assurez-vous que les types de données contenus dans les colonnes de destination sont compatibles avec ceux des données des colonnes sources.
Dans l'Explorateur d'objets, cliquez avec le bouton droit sur le nœud Vues, puis cliquez sur Nouvelle vue.
Dans le menu Concepteur de requêtes, pointez sur Modifier le type, puis cliquez sur Insérer les résultats.
Dans la boîte de dialogue Choisir la table cible pour la requête Insérer les résultats, sélectionnez la table dans laquelle vous souhaitez copier les données, puis cliquez sur OK.
Si vous copiez des lignes au sein d'une même table, vous pouvez ajouter la table source comme table de destination.
[!REMARQUE]
Le Concepteur de requêtes ne peut pas déterminer à l'avance les tables et vues qu'il est possible de mettre à jour. Par conséquent, la liste des tables fournie dans la boîte de dialogue Choisir la table cible pour la requête Insérer les résultats affiche toutes les tables et vues disponibles dans la connexion de données sur laquelle porte la requête, même celles vers lesquelles il est impossible de copier des lignes.
Cliquez avec le bouton droit dans le corps du volet Schéma et, dans le menu contextuel, cliquez sur Add Table to Diagram.
Dans la boîte de dialogue Ajouter une table, sélectionnez chaque table de laquelle vous souhaitez copier des données, cliquez sur Ajouter, puis sur Fermer.
Les tables apparaissent dans le volet Schéma sous une forme abrégée.
Dans les tables abrégées, activez les cases à cocher correspondant aux colonnes dont vous souhaitez copier des données.
Dans la colonne Ajouter du volet Critères, pour chaque colonne cible, choisissez une colonne dont vous souhaitez copier des données.
Spécifiez les lignes à copier en entrant des conditions de recherche dans le volet Critères. Pour plus d'informations, consultez Spécifier des conditions de recherche (Visual Database Tools).
Si vous ne spécifiez pas de condition de recherche, toutes les lignes de la table source seront copiées vers la table de destination.
Si vous souhaitez copier des informations de synthèse, spécifiez des options Grouper par. Pour plus d'informations, consultez Synthétiser ou regrouper des valeurs de toutes les lignes d'une table (Visual Database Tools).
Cliquez sur le bouton Exécuter SQL pour exécuter la requête.
Lorsque vous exécutez une requête Insert Values, aucun résultat n'apparaît dans le volet Résultats. En fait, un message indiquant le nombre de lignes copiées s'affiche.
[Haut de la page]
Utilisation de Transact-SQL
Pour copier des définitions de colonne d'une table vers une autre
- Vous ne pouvez pas copier des colonnes individuelles d'une table dans une autre table existante à l'aide d'instructions Transact-SQL. Toutefois, vous pouvez créer une table dans le groupe de fichiers par défaut et y insère les lignes résultant de la requête à l'aide de SELECT INTO. Pour plus d'informations, consultez Clause INTO (Transact-SQL).
Pour copier des données d'une table vers une autre
Dans l'Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.
Dans la barre d'outils standard, cliquez sur Nouvelle requête.
Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.
USE AdventureWorks2012; GO CREATE TABLE dbo.EmployeeSales ( BusinessEntityID varchar(11) NOT NULL, SalesYTD money NOT NULL ); GO INSERT INTO dbo.EmployeeSales SELECT BusinessEntityID, SalesYTD FROM Sales.SalesPerson; GO
[Haut de la page]