How to insert data from one table to another table

How to insert data from one table to another table by using SQL Server

There are various ways to insert data from one table to another table. I will present you the most efficently.

Using INSERT INTO

This method is used when the table is already existing in the database. Data will be inserted into this table from another table.

You don't have to list the columns If columns listed in insert clause and select clause are egual and with the same type. But to avoid any mistake, I recommand you to list each column.

You  can create an Insert From query, when you specify:
- The database table to copy rows to (the destination table).
- The table or tables to copy rows from (the source table).
- The source table or tables become part of a subquery.
- Sort order, if you want to copy the rows in a particular order.
- Group By options, if you want to copy only summary information.

Sample:

CREATE TABLE [tempdb].[dbo].[myTempTable](

      [backup_set_id] [int] NOT NULL,

      [name] [nvarchar](128) NOT NULL,

      [filegroup_id] [int] NOT NULL,

      [filegroup_guid] [uniqueidentifier] NULL,

      [type] [char](2) NOT NULL,

      [type_desc] [nvarchar](60) NOT NULL,

      [is_default] [bit] NOT NULL,

      [is_readonly] [bit] NOT NULL,

      [log_filegroup_guid] [uniqueidentifier] NULL

) ON [PRIMARY]

GO

INSERT INTO [tempdb].[dbo].[myTempTable] (

      [backup_set_id]

      ,[name]

      ,[filegroup_id]

      ,[filegroup_guid]

      ,[type]

      ,[type_desc]

      ,[is_default]

      ,[is_readonly]

      ,[log_filegroup_guid])

SELECT

      [backup_set_id]

      ,[name]

      ,[filegroup_id]

      ,[filegroup_guid]

      ,[type]

      ,[type_desc]

      ,[is_default]

      ,[is_readonly]

      ,[log_filegroup_guid]

FROM

      [msdb].[dbo].[backupfilegroup]

GO

SELECT * FROM [tempdb].[dbo].[myTempTable] ;

GO

DROP TABLE [tempdb].[dbo].[myTempTable] ;

 Inserting Rows by Using SELECT INTO

With this method you don't need to create the table before the insert. Table will be created when data from one table will be inserted from another table. This new table will be created with same data types as selected columns. SELECT INTO can be used to combine data from several tables or views into one table. It can also be used to create a new table that contains data selected from a linked server.

Sample:

SELECT [backup_set_id]
      ,[name]
,[filegroup_id]
,[filegroup_guid]
,[type]
,[type_desc]
,[is_default]
,[is_readonly]
,[log_filegroup_guid]
INTO
      [tempdb].[dbo].[myTempTable]
FROM
      [msdb].[dbo].[backupfilegroup]
GO
SELECT * FROM [tempdb].[dbo].[myTempTable] ;
GO
DROP TABLE [tempdb].[dbo].[myTempTable] ;

SELECT INTO is non-logged operation when the db is in bulk_logged mode.You can use BCP too... Read the the following article for more info. https://support.microsoft.com/?scid=kb;en-us;Q272093  INSERT INTO is recommended over SELECT INTO since the later requires more lock resources.

Don't ask you which one is  the best. You have to keep in mine that this both solution are different and adapted to a specific value.

 

 

Comment insérer des données d'une table vers une autre table en utilisant SQL Server

Il existe différentes façons d'insérer des données d'une table vers une autre table. Je vais vous présenter le plus efficacement possible.

Utiliser INSERT INTO

Cette méthode est utilisée lorsque la table est déjà existantes dans la base de données. Les datas seront insérées d'une table à l'autre table.

Vous n'avez pas d'énumérer les colonnes si les colonnes figurant dans la clause INSERT et la clause SELECT sont éguales et avec le même type.Pero para evitar el error, te recomiendo la lista de cada columna.

Vous pouvez créer un INSERT depuis une requête, lorsque vous spécifiez :
- Le tableau base de données à copier des lignes (la table de destination).
- La ou les tables à copier depuis la table source
- La table source ou les tables qui font partie d'une sous-requête.
- L'ordre de trie, si vous souhaitez copier les lignes dans un ordre particulier.
- Group By option, si vous souhaitez copier une synthèse des informations.

Exemple:

CREATE TABLE [tempdb].[dbo].[myTempTable](

      [backup_set_id] [int] NOT NULL,

      [name] [nvarchar](128) NOT NULL,

      [filegroup_id] [int] NOT NULL,

      [filegroup_guid] [uniqueidentifier] NULL,

      [type] [char](2) NOT NULL,

      [type_desc] [nvarchar](60) NOT NULL,

      [is_default] [bit] NOT NULL,

      [is_readonly] [bit] NOT NULL,

      [log_filegroup_guid] [uniqueidentifier] NULL

) ON [PRIMARY]

GO

INSERT INTO [tempdb].[dbo].[myTempTable] (

      [backup_set_id]

      ,[name]

      ,[filegroup_id]

      ,[filegroup_guid]

      ,[type]

      ,[type_desc]

      ,[is_default]

      ,[is_readonly]

      ,[log_filegroup_guid])

SELECT

      [backup_set_id]

      ,[name]

      ,[filegroup_id]

      ,[filegroup_guid]

      ,[type]

      ,[type_desc]

      ,[is_default]

      ,[is_readonly]

      ,[log_filegroup_guid]

FROM

      [msdb].[dbo].[backupfilegroup]

GO

SELECT * FROM [tempdb].[dbo].[myTempTable] ;

GO

DROP TABLE [tempdb].[dbo].[myTempTable] ;

 Insérer des lignes en utilisant SELECT INTO

Avec cette méthode, vous n'avez pas besoin de créer la table avant l'insertion de données. La table sera créée lorsque les données d'un tableau seront insérées d'une autre table. Cette nouvelle table sera créée avec les mêmes types de données que les colonnes sélectionnées. SELECT INTO peut être utilisé pour combiner les données provenant de plusieurs tables ou vues en une seule table. Il peut également être utilisé pour créer une nouvelle table qui contient des données sélectionnées à partir d'un serveur lié. rechercher

Exemple:

SELECT [backup_set_id]
      ,[name]
,[filegroup_id]
,[filegroup_guid]
,[type]
,[type_desc]
,[is_default]
,[is_readonly]
,[log_filegroup_guid]
INTO
      [tempdb].[dbo].[myTempTable]
FROM
      [msdb].[dbo].[backupfilegroup]
GO
SELECT * FROM [tempdb].[dbo].[myTempTable] ;
GO
DROP TABLE [tempdb].[dbo].[myTempTable] ;

SELECT INTO logue moins d'opération, lorsque la DB est en mode BULK_LOGGED. Vous pouvez aussi utiliser BCP ... Lire l'article suivant pour plus d'info. https://support.microsoft.com/?scid=kb;fr;Q272093 

Ne vous demandez pas quelle est la meilleur solution. Vous devez garder à l'esprit que se sont deux solutions différentes et adaptées à des cas spécifiques. Don't ask you which one is  the best. You have to keep in mine that this both solution are different and adapted to a specific value.

 

 

¿Cómo insertar los datos de una tabla a otra tabla con SQL Server?

Existen diferentes formas de insertar los datos de una tabla a otra tabla. Te enseñaré la manera más eficiente posible.

Usar INSERT INTO

Este método se utiliza cuando la tabla está ya existentes en la base de datos. El datas se insertan de una tabla a otra tabla.

Usted no necesita a la lista de columnas si las columnas en la cláusula de INSERT y cláusula SELECT son egual y con el mismo tipo

Usted puede crear uno de una consulta INSERT cuando se especifica:
- La tabla de base de datos para copiar filas (la tabla de destino).
- El cuadro o cuadros para copiar de la tabla de origen
- La tabla de origen o las tablas que forman parte de una subconsulta.
- El orden de las clases, si desea copiar las filas en un orden determinado.
- Group By opción, si desea copiar una síntesis de la información.

Ejemplo:

CREATE TABLE [tempdb].[dbo].[myTempTable](

      [backup_set_id] [int] NOT NULL,

      [name] [nvarchar](128) NOT NULL,

      [filegroup_id] [int] NOT NULL,

      [filegroup_guid] [uniqueidentifier] NULL,

      [type] [char](2) NOT NULL,

      [type_desc] [nvarchar](60) NOT NULL,

      [is_default] [bit] NOT NULL,

      [is_readonly] [bit] NOT NULL,

      [log_filegroup_guid] [uniqueidentifier] NULL

) ON [PRIMARY]

GO

INSERT INTO [tempdb].[dbo].[myTempTable] (

      [backup_set_id]

      ,[name]

      ,[filegroup_id]

      ,[filegroup_guid]

      ,[type]

      ,[type_desc]

      ,[is_default]

      ,[is_readonly]

      ,[log_filegroup_guid])

SELECT

      [backup_set_id]

      ,[name]

      ,[filegroup_id]

      ,[filegroup_guid]

      ,[type]

      ,[type_desc]

      ,[is_default]

      ,[is_readonly]

      ,[log_filegroup_guid]

FROM

      [msdb].[dbo].[backupfilegroup]

GO

SELECT * FROM [tempdb].[dbo].[myTempTable] ;

GO

DROP TABLE [tempdb].[dbo].[myTempTable] ;

 Insertar filas mediante SELECT INTO

Con este método no es necesario para crear la mesa antes de la inserción. Tabla se crea cuando los datos de una tabla se inserta de otra tabla. Esta nueva tabla se creará con el mismo tipo de datos como las columnas seleccionadas. SELECT INTO se puede utilizar para combinar datos de varias tablas o vistas en una sola mesa. También puede ser utilizado para crear una nueva tabla que contiene los datos seleccionados de un servidor vinculado.

Muestra:

SELECT [backup_set_id]
      ,[name]
,[filegroup_id]
,[filegroup_guid]
,[type]
,[type_desc]
,[is_default]
,[is_readonly]
,[log_filegroup_guid]
INTO
      [tempdb].[dbo].[myTempTable]
FROM
      [msdb].[dbo].[backupfilegroup]
GO
SELECT * FROM [tempdb].[dbo].[myTempTable] ;
GO
DROP TABLE [tempdb].[dbo].[myTempTable] ;

SELECT INTO no se registra operación cuando el DB está en el modo BULK_LOGGED. Usted puede utilizar BCP también ... Lea el artículo siguiente para más información. https://support.microsoft.com/?scid=kb;es;Q272093 

No pida usted que es el mejor. Tienes que mantener en la mina que esta solución son diferentes y adaptadas a un valor específico.

Michel Degremont | Microsoft EMEA
Product Support Services Developer - SQL Server Core Engineer |