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