sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cuáles son las diferentes formas de insertar datos en la tabla de SQL Server? SQL Server / Tutorial de TSQL, parte 100

Escenario:

Como desarrollador de SQL Server, debe encontrar diferentes formas de insertar datos en la tabla de SQL Server.
A veces, simplemente debe insertar registros estáticos, a veces debe insertar datos de otra tabla en una tabla existente. Veamos diferentes técnicas para insertar datos en la tabla de SQL Server.

Solución:

Primero creemos la tabla dbo.Customer usando la definición a continuación.
USE yourDatabaseName
Go
Create Table dbo.Customer(
Id int identity(1,1),
FName VARCHAR(50),
LName VARCHAR(50),
Age int,
DOB Date,
Salary Numeric(6,2))
 
 

1) Utilice inserciones múltiples para insertar datos en la tabla.


Insert into dbo.Customer(FName,LName,Age,DOB,Salary)
Values('Aamir','Shahzad',36,'1980-01-01',5000.50)
GO
Insert into dbo.Customer(FName,LName,Age,DOB,Salary)
Values ('Raza','M',33,'1983-03-03',4900.34)
GO
Insert into dbo.Customer(FName,LName,Age,DOB,Salary)
Values ('John','Smith',26,'1990-04-05',5000.50)
 
 
 

2) Usar un único inserto con varios valores

Como en el ejemplo anterior, usamos múltiples inserciones. Cada una estaba insertando un solo registro. En SQL Server podemos usar una sola inserción con múltiples valores como se muestra a continuación.
Insert into dbo.Customer(FName,LName,Age,DOB,Salary)
Values('Aamir','Shahzad',36,'1980-01-01',5000.50),
('Raza','M',33,'1983-03-03',4900.34),
('John','Smith',26,'1990-04-05',5000.50)
 
 

3) Use Seleccionar con Insertar para insertar registros

Podemos usar Insertar con consulta de selección para insertar el conjunto de resultados devuelto por la consulta de selección.
Insert into dbo.Customer(FName,LName,Age,DOB,Salary)
Select 'Aamir' as FName,'Shahzad' as LName,36 as Age,'1980-01-01' as DOB,5000.50 as Salary
union all
Select 'Raza','M',33,'1983-03-03',4900.34
Union all
Select 'John','Smith',26,'1990-04-05',5000.50
 
 
 

4) Use Insertar sin proporcionar nombres de columna

Como ha visto en los ejemplos anteriores, he usado la lista de columnas con Insertar, no tiene que usar eso si sabe que el orden de las columnas y los valores que está usando también están en orden. Siempre uso la lista de columnas en Insertar y seleccionar para asegurarme de que estoy insertando los datos correctos en la tabla en las columnas correctas.
--Insert without provide Column Names
Insert into dbo.Customer
Select 'Aamir' as FName,'Shahzad' as LName,36 as Age,'1980-01-01' as DOB,5000.50 as Salary
union all
Select 'Raza','M',33,'1983-03-03',4900.34
Union all
Select 'John','Smith',26,'1990-04-05',5000.50
 
Also we can use the insert without Column Names with Values option
 
Insert into dbo.Customer
Values('Aamir','Shahzad',36,'1980-01-01',5000.50),
('Raza','M',33,'1983-03-03',4900.34),
('John','Smith',26,'1990-04-05',5000.50)
 

5) Insertar datos de otra tabla a la tabla de destino

Como hemos visto, los resultados de la consulta de selección se pueden insertar en la tabla. En los ejemplos anteriores, hemos utilizado los valores estáticos con select. Puede seleccionar los datos de la tabla, la vista y la función, etc. para insertarlos en su tabla. Digamos si queremos insertar datos en la tabla dbo.Customer desde la tabla dbo.CustomerUS. puede usar la siguiente consulta.
--Insert into table from another table
Select into dbo.Customer(FName,LName,Age,DOB,Salary)
Select FName,LName,Age,DOB,Salary from dbo.CustomerUS


Demostración en video:cómo insertar datos en una tabla de servidor SQL mediante sentencias T-SQL