Copia di colonne da una tabella a un'altra (Motore di database)Copy Columns from One Table to Another (Database Engine)

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2016)sìDatabase SQL di AzuresìAzure SQL Data Warehouse sìParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

In questo argomento viene illustrato come copiare colonne di una tabella a un'altra copiando solo la definizione di colonna oppure la definizione e i dati in SQL Server 2017SQL Server 2017 tramite SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to copy columns from one table to another, copying either just the column definition, or the definition and data in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Contenuto dell'argomentoIn This Topic

Prima di iniziareBefore You Begin

Limitazioni e restrizioniLimitations and Restrictions

Quando si copia una colonna contenente un tipo di dati alias da un database a un altro, il tipo di dati alias potrebbe non essere disponibile nel database di destinazione.When you copy a column that has an alias data type from one database to another, the alias data type may not be available in the destination database. In questo caso, alla colonna verrà assegnato il tipo di dati di base più simile tra quelli disponibili nel database.In such a case, the column will be assigned the nearest matching base data type available in that database.

SicurezzaSecurity

AutorizzazioniPermissions

È necessario disporre dell'autorizzazione ALTER per la tabella.Requires ALTER permission on the table.

Utilizzo di SQL Server Management StudioUsing SQL Server Management Studio

Per copiare le definizioni delle colonne tra tabelleTo copy column definitions from one table to another

  1. Aprire la tabella contenente le colonne da copiare e quella in cui verranno copiate le colonne facendo clic con il pulsante destro del mouse sulle tabelle, quindi scegliendo Progetta.Open the table with columns you want to copy and the one you want to copy into by right-clicking the tables, and then clicking Design.

  2. Fare clic sulla scheda relativa alla tabella contenente le colonne da copiare e selezionarle.Click the tab for the table with the columns you want to copy and select those columns.

  3. Scegliere Copia dal menu Modifica.From the Edit menu, click Copy.

  4. Fare clic sulla scheda relativa alla tabella in cui copiare le colonne.Click the tab for the table into which you want to copy the columns.

  5. Selezionare la colonna prima della quale si desidera che vengano inserite le colonne appena copiate, quindi scegliere Incolla dal menu Modifica.Select the column you want to follow the inserted columns and, from the Edit menu, click Paste.

Per copiare dati tra tabelleTo copy data from one table to another

  1. Seguire le istruzioni sopra riportate per copiare le definizioni delle colonne.Follow the directions for copying column definitions above.

    Nota

    Prima di iniziare a copiare i dati da una tabella a un'altra, assicurarsi che i tipi di dati delle colonne di destinazione siano compatibili con quelli delle colonne di origine.Before you begin to copy data from one table to another, make sure that the data types in the destination columns are compatible with the data types of the source columns

  2. Aprire una nuova finestra dell'editor di query.Open a new Query Editor window.

  3. Fare clic con il pulsante destro sull’editor di query e quindi scegliere Progetta query nell'editor.Right-click the Query Editor, and then click Design Query in Editor.

  4. Nella finestra di dialogo Aggiungi tabella selezionare la tabella di origine e destinazione, fare clic su Aggiungi, quindi chiudere la finestra di dialogo Aggiungi tabella .In the Add Table dialog box, select the source and destination table, click Add, and then close the Add Table dialog box.

  5. Fare clic con il pulsante destro del mouse su un'area vuota dell'editor di query, scegliere Modifica tipoe quindi fare clic su Accodamento.Right-click an open area of the the Query Editor, point to Change Type, and then click Insert Results.

  6. Nella finestra di dialogo Scegliere la tabella di destinazione per Accodamento selezionare la tabella di destinazione.In the Choose Target Table for Insert Results dialog box, select the destination table.

  7. Nella parte superiore di Progettazione query fare clic sulla colonna di origine nella tabella di origine.In the upper portion of the Query Designer, click the source column in the source table.

  8. In Progettazione query è stata ora creata una query INSERT.The Query Designer has now created an INSERT query. Fare clic su OK per inserire la query nella finestra dell'editor di query originale.Click OK to place the query into the original Query Editor window.

  9. Eseguire la query per inserire i dati dalla tabella di origine alla tabella di destinazione.Execute the query to insert the data from the source table to the destination table.

Utilizzo di Transact-SQLUsing Transact-SQL

Per copiare le definizioni delle colonne tra tabelleTo copy column definitions from one table to another

  1. Non è possibile copiare singole colonne da una tabella a un'altra tramite istruzioni Transact-SQL.You cannot copy individual columns from one table to another existing table by using Transact-SQL statements. È tuttavia possibile creare una nuova tabella nel filegroup predefinito e inserirvi le righe restituite dalla query.However, you can create a new table in the default filegroup and inserts the resulting rows from the query into it by using SELECT INTO. Per altre informazioni, vedere Clausola INTO (Transact-SQL).For more information, see INTO Clause (Transact-SQL).

Per copiare dati tra tabelleTo copy data from one table to another

  1. In Esplora oggetticonnettersi a un'istanza del Motore di databaseDatabase Engine.In Object Explorer, connect to an instance of Motore di databaseDatabase Engine.

  2. Sulla barra Standard fare clic su Nuova query.On the Standard bar, click New Query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.Copy and paste the following example into the query window and click Execute.

    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