Zoeken…


Invoering

De instructie INSERT INTO wordt gebruikt om nieuwe records in een tabel in te voegen.

PLAATS Hallo wereld IN tafel

CREATE TABLE MyTableName
(
    Id INT,
    MyColumnName NVARCHAR(1000)
)
GO

INSERT INTO MyTableName (Id, MyColumnName)
VALUES (1, N'Hello World!')
GO    

PLAATSEN in specifieke kolommen

Als u een invoeging voor specifieke kolommen wilt doen (in tegenstelling tot alle kolommen), moet u de kolommen opgeven die u wilt bijwerken.

INSERT INTO USERS (FIRST_NAME, LAST_NAME)
VALUES ('Stephen', 'Jiang');

Dit werkt alleen als de kolommen die u niet hebt vermeld nulbaar zijn, identiteit, gegevenstype tijdstempel of berekende kolommen; of kolommen met een standaardwaardebeperking. Daarom, als een van hen niet-nullable, niet-identiteit, niet-tijdstempel, niet-berekende, niet-standaard gewaardeerde kolommen is ... zal het proberen van dit soort invoeging een foutmelding geven die aangeeft dat u een waarde voor de toepasselijke veld (en).

PLAATS meerdere rijen met gegevens

Meerdere rijen met gegevens invoegen in SQL Server 2008 of hoger:

INSERT INTO USERS VALUES
(2, 'Michael', 'Blythe'),
(3, 'Linda', 'Mitchell'),
(4, 'Jillian', 'Carson'),
(5, 'Garrett', 'Vargas');

Gebruik "UNION ALL" als volgt om meerdere rijen met gegevens in eerdere versies van SQL Server in te voegen:

INSERT INTO USERS (FIRST_NAME, LAST_NAME)
SELECT 'James', 'Bond' UNION ALL
SELECT 'Miss', 'Moneypenny' UNION ALL
SELECT 'Raoul', 'Silva'

Let op, het trefwoord "INTO" is optioneel in INSERT-query's. Een andere waarschuwing is dat SQL-server slechts 1000 rijen in één INSERT ondersteunt, dus u moet ze in batches splitsen.

PLAATS een enkele rij met gegevens

Een enkele rij met gegevens kan op twee manieren worden ingevoegd:

INSERT INTO USERS(Id, FirstName, LastName)
VALUES (1, 'Mike', 'Jones');

Of

INSERT INTO USERS
VALUES (1, 'Mike', 'Jones');

Merk op dat de tweede invoeginstructie de waarden alleen in exact dezelfde volgorde toestaat als de tabelkolommen, terwijl in de eerste invoeging de volgorde van de waarden kan worden gewijzigd zoals:

INSERT INTO USERS(FirstName, LastName, Id)
VALUES ('Mike', 'Jones', 1);

Gebruik OUTPUT om de nieuwe ID te krijgen

Bij INSERTING kunt u OUTPUT INSERTED.ColumnName INSERTED.ColumnName gebruiken om waarden op te halen uit de nieuw ingevoegde rij, bijvoorbeeld de nieuw gegenereerde ID - handig als u een IDENTITY kolom of een standaard- of berekende waarde hebt.

Wanneer u dit programmatisch aanroept (bijv. Van ADO.net), zou u het als een normale query behandelen en de waarden lezen alsof u een SELECT statement zou hebben gemaakt.

-- CREATE TABLE OutputTest ([Id] INT NOT NULL PRIMARY KEY IDENTITY, [Name] NVARCHAR(50))

INSERT INTO OutputTest ([Name])
OUTPUT INSERTED.[Id]
VALUES ('Testing')

Als de ID van de recent toegevoegde rij vereist is binnen dezelfde set van query of opgeslagen procedure.

-- CREATE a table variable having column with the same datatype of the ID

DECLARE @LastId TABLE ( id int);

INSERT INTO OutputTest ([Name])
OUTPUT INSERTED.[Id] INTO @LastId
VALUES ('Testing')

SELECT id FROM @LastId

-- We can set the value in a variable and use later in procedure

DECLARE @LatestId int = (SELECT id FROM @LastId)

INSERT van SELECT Query Results

Gegevens invoegen die zijn opgehaald uit SQL-query (enkele of meerdere rijen)

INSERT INTO Table_name (FirstName, LastName, Position)
SELECT FirstName, LastName, 'student' FROM Another_table_name

Merk op dat 'student' in SELECT een stringconstante is die in elke rij wordt ingevoegd.

Indien nodig kunt u gegevens uit / in dezelfde tabel selecteren en invoegen



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow