Comando INSERT no SQL Server
- 24-07-2022
- Toanngo92
- 0 Comments
Mục lục
Apresentando o comando INSERT no SQL Server
A instrução insert é usada para adicionar dados a uma tabela no SQL Server
Sintaxe:
INSERT INTO table_name (column_list) VALUES (value_list)
Explique:
- table_name: o nome da tabela que você deseja adicionar novos dados
- column_list : lista de colunas, separadas por ","
- value_list: é uma lista de valores correspondentes à coluna, separados por ","
- Nota: Os pares de valor de coluna e valor correspondem e correspondem em ordem e quantidade entre si. Precisa seguir a sintaxe correta
Por exemplo:
INSERT INTO Person.PersonPhone (BusinessEntityID, PhoneNumber, PhoneNumberTypeID, ModifiedDate) VALUES (299,'699-511-0142,1','2020-10-12')
Sintaxe curta (não é necessário definir colunas, apenas especifique a ordem correta dos valores):
INSERT INTO Person.PersonPhone VALUES (20777,'699-511-0143',1,'2020-10-12')
Os valores das colunas correspondentes são os seguintes:
- BusinessEntityID: 299
- Telefone: 699-511-0142
- PhoneNumberTypeID: 1
- Data de modificação: 2020-10-12
Algumas situações devem ser observadas com o comando INSERT .
Teste esta instrução de inserção no AdventureWorks2019:
USE [AdventureWorks2019] GO INSERT INTO [Production].[Product] ([Name] ,[ProductNumber] ,[MakeFlag] ,[FinishedGoodsFlag] ,[Color] ,[SafetyStockLevel] ,[ReorderPoint] ,[StandardCost] ,[ListPrice] ,[Size] ,[SizeUnitMeasureCode] ,[WeightUnitMeasureCode] ,[Weight] ,[DaysToManufacture] ,[ProductLine] ,[Class] ,[Style] ,[ProductSubcategoryID] ,[ProductModelID] ,[SellStartDate] ,[SellEndDate] ,[DiscontinuedDate] ,[rowguid] ,[ModifiedDate]) VALUES ('Laptop Thinkpad L470' ,'SKU-001' ,0 ,0 ,null ,1000 ,750 ,0 ,0 ,null ,null ,null ,null ,0 ,null ,null ,null ,null ,null ,'2008-05-01' ,null ,null ,NEWID() ,'2022-05-01' ) GO
Este comando dá um erro:
USE [AdventureWorks2019] GO INSERT INTO [Production].[Product] ( [ProductID], [Name] ,[ProductNumber] ,[MakeFlag] ,[FinishedGoodsFlag] ,[Color] ,[SafetyStockLevel] ,[ReorderPoint] ,[StandardCost] ,[ListPrice] ,[Size] ,[SizeUnitMeasureCode] ,[WeightUnitMeasureCode] ,[Weight] ,[DaysToManufacture] ,[ProductLine] ,[Class] ,[Style] ,[ProductSubcategoryID] ,[ProductModelID] ,[SellStartDate] ,[SellEndDate] ,[DiscontinuedDate] ,[rowguid] ,[ModifiedDate]) VALUES ( 1001, 'Laptop Thinkpad L470' ,'SKU-001' ,0 ,0 ,null ,1000 ,750 ,0 ,0 ,null ,null ,null ,null ,0 ,null ,null ,null ,null ,null ,'2008-05-01' ,null ,null ,NEWID() ,'2022-05-01' ) GO
Motivo: na tabela Product, a coluna ProductID é a chave primária e é atribuído um atributo autoincrementável, no SQL Server não é atribuído um valor para coluna com valor autoincrementável para garantir a integridade dos dados, portanto, simplesmente não inserimos dados no Coluna ProductID e tudo bem, essa coluna será gerada automaticamente pelo SQL Server de acordo com o mecanismo de autoincremento.
INSERT obter informações de retorno
Todos os dados recém inseridos serão armazenados na variável inserida, e para obter os dados inseridos, usamos o comando OUTPUT . Se você quiser gerar mais colunas, separe as colunas por vírgulas ",":
Por exemplo, obtenha o ID que acabou de ser inserido
USE [AdventureWorks2019] GO INSERT INTO [Production].[Product] ([Name] ,[ProductNumber] ,[MakeFlag] ,[FinishedGoodsFlag] ,[Color] ,[SafetyStockLevel] ,[ReorderPoint] ,[StandardCost] ,[ListPrice] ,[Size] ,[SizeUnitMeasureCode] ,[WeightUnitMeasureCode] ,[Weight] ,[DaysToManufacture] ,[ProductLine] ,[Class] ,[Style] ,[ProductSubcategoryID] ,[ProductModelID] ,[SellStartDate] ,[SellEndDate] ,[DiscontinuedDate] ,[rowguid] ,[ModifiedDate]) OUTPUT inserted.ProductID, inserted.Name VALUES ('Dell Inspiron 5570' ,'SKU-002' ,0 ,0 ,null ,1000 ,750 ,0 ,0 ,null ,null ,null ,null ,0 ,null ,null ,null ,null ,null ,'2008-05-01' ,null ,null ,NEWID() ,'2022-05-01' ) GO