INSERT-Befehl in SQL Server
- 24-07-2022
- Toanngo92
- 0 Comments
Mục lục
Einführung des INSERT-Befehls in SQL Server
Die Insert-Anweisung wird verwendet, um Daten zu einer Tabelle in SQL Server hinzuzufügen
Syntax:
INSERT INTO table_name (column_list) VALUES (value_list)
Erklären:
- Tabellenname: Der Name der Tabelle, der Sie neue Daten hinzufügen möchten
- column_list : Liste der Spalten, getrennt durch ","
- value_list: ist eine Liste von Werten, die der Spalte entsprechen, getrennt durch ","
- Hinweis: Die Wertepaare Spalte und Wert stimmen überein und stimmen in Reihenfolge und Menge miteinander überein. Sie müssen der korrekten Syntax folgen
Zum Beispiel:
INSERT INTO Person.PersonPhone (BusinessEntityID, PhoneNumber, PhoneNumberTypeID, ModifiedDate) VALUES (299,'699-511-0142,1','2020-10-12')
Kurze Syntax (es müssen keine Spalten definiert werden, geben Sie einfach die richtige Reihenfolge der Werte an):
INSERT INTO Person.PersonPhone VALUES (20777,'699-511-0143',1,'2020-10-12')
Die Werte der entsprechenden Spalten sind wie folgt:
- BusinessEntityID: 299
- Telefonnummer: 699-511-0142
- TelefonnummerTypID: 1
- Änderungsdatum: 2020-10-12
Einige Situationen sollten beim INSERT .-Befehl beachtet werden
Testen Sie diese Insert-Anweisung 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
Dieser Befehl gibt einen Fehler aus:
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
Grund: In der Product-Tabelle ist die Spalte ProductID der Primärschlüssel und ihr wird ein selbstinkrementierendes Attribut zugewiesen, in SQL Server wird der Spalte kein Wert mit einem selbstinkrementierenden Wert zugewiesen, um die Datenintegrität sicherzustellen, also fügen wir einfach keine Daten in die ein ProductID-Spalte und das ist in Ordnung, diese Spalte wird automatisch von SQL Server gemäß dem selbstinkrementierenden Mechanismus generiert.
INSERT Rücksendeinformationen erhalten
Alle neu eingefügten Daten werden in der eingefügten Variablen gespeichert, und um die eingefügten Daten zu erhalten, verwenden wir den OUTPUT- Befehl. Wenn Sie mehr Spalten ausgeben möchten, trennen Sie die Spalten durch Kommas ",":
Holen Sie sich zum Beispiel die gerade eingefügte ID
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