Mám naraz vložiť viacero údajov, napríklad 4 riadky. Moja tabuľka má tri stĺpce: Osoba
, Id
a Kancelária
.
INSERT INTO MyTable VALUES ("John", 123, "Lloyds Office");
INSERT INTO MyTable VALUES ("Jane", 124, "Lloyds Office");
INSERT INTO MyTable VALUES ("Billy", 125, "London Office");
INSERT INTO MyTable VALUES ("Miranda", 126, "Bristol Office");
Môžem vložiť všetky 4 riadky v jednom príkaze SQL?
V serveri SQL Server 2008 môžete vložiť viacero riadkov pomocou jedného príkazu SQL INSERT.
INSERT INTO MyTable ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )
Pre referenciu k tomuto si pozrite kurz MOC 2778A - Písanie dotazov SQL v SQL Serveri 2008.
Napríklad:
INSERT INTO MyTable
( Column1, Column2, Column3 )
VALUES
('John', 123, 'Lloyds Office'),
('Jane', 124, 'Lloyds Office'),
('Billy', 125, 'London Office'),
('Miranda', 126, 'Bristol Office');
Ak vkladáte do jednej tabuľky, môžete svoj dotaz napísať takto (možno len v MySQL):
INSERT INTO table1 (First, Last)
VALUES
('Fred', 'Smith'),
('John', 'Smith'),
('Michael', 'Smith'),
('Robert', 'Smith');
POZNÁMKA: Táto odpoveď sa vzťahuje na SQL Server 2005. Pre SQL Server 2008 a novší existujú oveľa lepšie metódy, ako je uvedené v iných odpovediach.
Môžete použiť INSERT s SELECT UNION ALL:
INSERT INTO MyTable (FirstCol, SecondCol)
SELECT 'First' ,1
UNION ALL
SELECT 'Second' ,2
UNION ALL
SELECT 'Third' ,3
...
Avšak len pre malé súbory údajov, čo by malo byť v poriadku pre vaše 4 záznamy.