Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Quais são as diferentes maneiras de inserir dados na tabela do SQL Server - SQL Server / TSQL Tutorial Part 100

Cenário:

Como desenvolvedor do SQL Server, você tem que ter diferentes maneiras de inserir dados na tabela do SQL Server.
Às vezes você tem que simplesmente inserir registros estáticos, às vezes você tem que inserir dados de outra tabela em uma tabela existente. Vamos conferir diferentes técnicas para inserir dados na tabela do SQL Server.

Solução:

Vamos criar a tabela dbo.Customer primeiro usando a definição abaixo.
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) Use Inserções Múltiplas para inserir dados na tabela.


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) Use uma única inserção com vários valores

Como no exemplo acima, usamos várias inserções. Cada um estava inserindo um único registro. No SQL Server podemos usar um único Insert com vários valores como mostrado abaixo.
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 Selecionar com Inserir para inserir registros

Podemos usar Insert with Select query para inserir o conjunto de resultados retornado pela query select.
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 Inserir sem fornecer nomes de coluna

Como você viu nos exemplos acima, usei a lista de colunas com Inserir, você não precisa usar isso se souber que a ordem das colunas e os valores que está usando também estão em ordem. Eu sempre uso a lista de colunas em inserir e selecionar para ter certeza de que estou inserindo os dados corretos na tabela nas colunas corretas.
--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) Inserir dados de outra tabela na tabela de destino

Como vimos, os resultados da consulta de seleção podem ser inseridos na tabela. Nos exemplos acima, usamos os valores estáticos com select, você pode selecionar os dados da tabela, visualização e função etc. para inserir em sua tabela. Digamos que queremos inserir dados na tabela dbo.Customer da tabela dbo.CustomerUS. você pode usar a consulta abaixo.
--Insert into table from another table
Select into dbo.Customer(FName,LName,Age,DOB,Salary)
Select FName,LName,Age,DOB,Salary from dbo.CustomerUS


Demonstração em vídeo:como inserir dados na tabela SQL Server usando instruções T-SQL