Comando INSERT in SQL Server
- 24-07-2022
- Toanngo92
- 0 Comments
Mục lục
Presentazione del comando INSERT in SQL Server
L'istruzione insert viene utilizzata per aggiungere dati a una tabella in SQL Server
Sintassi:
INSERT INTO table_name (column_list) VALUES (value_list)
Spiegare:
- table_name: il nome della tabella a cui vuoi aggiungere nuovi dati
- column_list : elenco di colonne, separate da ","
- value_list: è un elenco di valori corrispondenti alla colonna, separati da ","
- Nota: le coppie di valori di colonna e valore corrispondono e corrispondono in ordine e quantità tra loro. È necessario seguire la sintassi corretta
Per esempio:
INSERT INTO Person.PersonPhone (BusinessEntityID, PhoneNumber, PhoneNumberTypeID, ModifiedDate) VALUES (299,'699-511-0142,1','2020-10-12')
Sintassi breve (non è necessario definire colonne, basta specificare l'ordine corretto dei valori):
INSERT INTO Person.PersonPhone VALUES (20777,'699-511-0143',1,'2020-10-12')
I valori delle colonne corrispondenti sono i seguenti:
- ID entità aziendale: 299
- Numero di telefono: 699-511-0142
- PhoneNumberTypeID: 1
- Data modificata: 2020-10-12
Alcune situazioni dovrebbero essere annotate con il comando INSERT .
Prova questa dichiarazione di inserimento in 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
Questo comando dà un errore:
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: nella tabella Product, la colonna ProductID è la chiave primaria e viene assegnato un attributo autoincrementante, in SQL Server non viene assegnato un valore per la colonna con valore autoincrementante per garantire l'integrità dei dati, quindi semplicemente non inseriamo i dati nel Colonna ProductID e va bene, quella colonna verrà generata automaticamente da SQL Server in base al meccanismo di autoincremento.
INSERT ottenere informazioni sul reso
Tutti i dati appena inseriti verranno archiviati nella variabile inserita e per ottenere i dati inseriti utilizziamo il comando OUTPUT . Se vuoi generare più colonne, separa le colonne con virgole ",":
Ad esempio, ottieni l'ID appena inserito
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