Egy vagy több rekord táblához fűzésére szolgál. Ez az úgynevezett hozzáfűző lekérdezés.
Szintaxis
Több rekord hozzáfűzésére szolgáló lekérdezés:
INSERT INTO cél [(mező1[, nező2[, ...]])] [IN külsőadatbázis]
SELECT [forrás.]mező1[, mező2[, ...]
FROM táblakifejezés
Egyetlen rekord hozzáfűzésére szolgáló lekérdezés:
INSERT INTO cél [(mező1[, mező2[, ...]])]
VALUES (érték1[, érték2[, ...])
Az INSERT INTO utasítás az alábbi részekből áll:
Rész |
Leírás |
Cél |
Annak a táblának vagy lekérdezésnek a neve, amelyhez rekordokat szeretne fűzni. |
mező1, mező2 |
A Cél argumentumot követően azon mezők neve, amelyekhez adatokat szeretne fűzni. A Forrás argumentumot követően azon mezők neve, melyekből az adatokat ki szeretné nyerni. |
külsőadatbázis |
Egy külső adatbázisra mutató elérési út. Az elérési út leírását az IN záradék leírásában találja meg. |
forrás |
Annak a táblának vagy lekérdezésnek a neve, amelyekből rekordokat szeretne másolni. |
táblakifejezés |
Azon tábla vagy táblák neve, amelyekből az adatokat beszúrja. Ez az argumentum lehet egyetlen tábla neve, vagy egy INNER JOIN, LEFT JOIN vagy RIGHT JOIN művelet eredményeképpen létrejött összetétel, vagy egy elmentett lekérdezés. |
érték1, érték2 |
Az új rekord adott mezőibe beszúrandó értékek. A rendszer minden értéket az érték listán elfoglalt helyének megfelelő mezőbe szúr be: az érték1-et az új rekordban található mező1-be, az érték2-t a mező2-be, és így tovább. Az értékeket vesszővel kell egymástól elválasztani, a szöveges mezőket pedig idézőjelek ("") közé kell helyezni. |
Megjegyzések
Egyetlen rekordot a fenti egyetlen rekord hozzáfűzését bemutató példa szintaxisát használva fűzhet hozzá az INSERT INTO utasítással egy táblához. Ilyen esetekben a kód fogja megadni a rekord minden egyes mezőjének a nevét és értékét. A rekord minden olyan mezőjét meg kell adni, amelyhez értéket kíván rendelni, és meg kell adni a mezők értékeit is. Ha nem ad meg minden mezőt, a rendszer az alapértelmezett értéket vagy Null értéket fogja beszúrni a hiányzó értékeket tartalmazó oszlopokba. A rekordokat a tábla végéhez fűzi a rendszer.
Az INSERT INTO utasítással egy másik táblából származó rekordkészletet is hozzáfűzhet a táblához a SELECT ... FROM záradékot használva, ahogy a fenti többrekordos lekérdezési szintaxisban látható. Ebben az esetben a SELECT záradék határozza meg a megadott cél táblához fűzendő mezőket.
A forrás vagy cél objektum lehet egy tábla vagy egy lekérdezés is. Ha lekérdezés, a Microsoft Access adatbázismotorja hozzáfűzi a rekordokat a lekérdezés által meghatározott összes táblához.
Az INSERT INTO utasítást nem kötelező megadni, de ha a lekérdezés tartalmazza, akkor a SELECT utasítás előtt kell szerepelnie.
Ha a céltábla elsődleges kulcsot tartalmaz, gondoskodjon arról, hogy az elsődleges kulcs mezőjéhez vagy mezőihez fűzendő értékek egyediek legyenek, és ne legyen közöttük Null értékű. Ha ez nincs így, a Microsoft Access-adatbázis motor nem fogja végrehajtani a rekordok hozzáfűzését.
Ha Számláló (AutoNumber) mezővel rendelkező táblához fűz rekordokat, és szeretné, ha a rendszer újraszámozná a hozzáfűzött rekordokat, a Számláló mezőt ne foglalja bele a lekérdezésbe. Ha szeretné megőrizni a mezők eredeti értékét, akkor foglalja bele a Számláló mezőt is a lekérdezésbe.
Egy másik adatbázisban található táblához az IN záradékot használva fűzhet rekordokat.
Új tábla létrehozásához, használja a SELECT… INTO utasítást egy táblakészítő lekérdezés létrehozása helyett.
Ha a hozzáfűző lekérdezés futtatása előtt meg szeretné tudni, hogy mely rekordokat fogja a kijelölt táblához fűzni a rendszer, először vizsgálja meg egy ugyanazon feltételeket használó választó lekérdezés eredményét.
A hozzáfűző lekérdezés egy vagy több táblából átmásolja a rekordokat egy másikba. Arra a táblára, amely a hozzáfűzésre kerülő rekordokat tartalmazza, nem lesz hatással a hozzáfűző lekérdezés.
Egy másik tábla létező rekordjainak a hozzáfűzése helyett megadhatja az egyes mezők értékeit egyetlen új rekordban is, a VALUES záradékot használva. Ha nem ad meg mezőlistát, a VALUES záradékban a tábla minden mezőjére vonatkozóan szerepelnie kell egy értéknek ahhoz, hogy az INSERT utasítást végre tudja hajtani a rendszer. Minden egyes rekordhoz, amit létre szeretne hozni, használjon egy további VALUES záradékot tartalmazó INSERT INTO utasítást.