הוספת רשומה או רשומות מרובות לטבלה. המשפט נקרא שאילתת הוספה.
תחביר
שאילתת הוספה של רשומות מרובות:
INSERT INTO target [(field1[, field2[, ...]])] [IN externaldatabase]
SELECT [source.]field1[, field2[, ...]
FROM tableexpression
שאילתת הוספה של רשומה בודדת:
INSERT INTO target [(field1[, field2[, ...]])]
VALUES (value1[, value2[, ...])
משפט INSERT INTO כולל חלקים אלה:
| חלק | תיאור |
| target | שם הטבלה או השאילתה אליה יצורפו רשומות. |
| field1, field2 | שמות השדות אליהם יצורפו נתונים, אם הם מופיעים לאחר הארגומנט target, או שמות השדות מהם יתקבלו נתונים, אם הם מופיעים לאחר הארגומנט source. |
| externaldatabase | הנתיב אל מסד נתונים חיצוני. לקבלת תיאור של הנתיב, ראה את הסעיף לגבי פסוקית IN. |
| source | שם הטבלה או השאילתה מהן יועתקו רשומות. |
| tableexpression | שם הטבלה או הטבלאות מהן יתווספו רשומות. ארגומנט זה יכול להיות שם טבלה בודדת או שילוב שנוצר כתוצאה מהפעולות INNER JOIN, LEFT JOIN או RIGHT JOIN או שאילתה שמורה. |
| value1, value2 | הערכים שיתווספו אל השדות הספציפיים של הרשומה החדשה. כל ערך מתווסף לתוך השדה המקביל למיקום הערך ברשימה: value1 מתווסף לתוך field1 של הרשומה החדשה, value2 לתוך field2, וכן הלאה. עליך להפריד ערכים באמצעות סימן פסיק ולהקיף שדות טקסט בסימני גרש בודד (' '). |
הערות
באפשרותך להשתמש במשפט INSERT INTO כדי להוסיף רשומה בודדת לטבלה באמצעות תחביר שאילתת הוספה של רשומה בודדת כפי שהוצג לעיל. במקרה זה, הקוד שלך מציין את השם והערך עבור כל שדה ברשומה. עליך לציין כל שדה ברשומה אליו ישוייך ערך וכן ערך עבור אותו שדה. כאשר אינך מציין כל שדה, ערך ברירת המחדל או ערך Null מתווסף עבור עמודות חסרות. רשומות מתווספות לסוף הטבלה.
באפשרותך גם להשתמש במשפט INSERT INTO כדי לצרף קבוצה של רשומות מטבלה או שאילתה אחרת באמצעות פסוקית SELECT ... FROM, כפי שהוצג לעיל בתחביר שאילתת הוספה של רשומות מרובות. במקרה זה, פסוקית SELECT מציינת את השדות שיתווספו אל טבלת היעד שצויינה.
טבלת המקור או היעד עשויה לציין טבלה או שאילתה. אם צויינה שאילתה, מנגנון מסד הנתונים Jet של Microsoft מצרף רשומות לכל הטבלאות שצויינו באמצעות השאילתה.
משפט INSERT INTO הוא אופציונלי אך כאשר הוא נכלל בקוד, עליו להופיע לפני משפט SELECT.
אם טבלת היעד שלך מכילה מפתח ראשי, ודא כי אתה מצרף ערכים ייחודיים שאינם מסוג Null לשדה או לשדות של המפתח הראשי; אם לא תעשה זאת, מנגנון מסד הנתונים Jet של Microsoft לא יצרף את הרשומות.
אם אתה מצרף רשומות לטבלה עם שדה מסוג AutoNumber וברצונך למספר מחדש את הרשומות המצורפות, אל תכלול את השדה מסוג AutoNumber בשאילתה שלך. כלול שדה מסוג AutoNumber בשאילתה אם ברצונך לשמור על הערכים המקוריים מתוך השדה.
השתמש בפסוקית IN כדי לצרף רשומות לטבלה במסד נתונים אחר.
כדי ליצור טבלה חדשה, השתמש במשפט SELECT... INTO במקום ליצור שאילתת יצירת טבלה.
כדי לבדוק אילו רשומות יצורפו לפני הפעלת שאילתת ההוספה, הפעל והצג תחילה את התוצאות של שאילתת בחירה העושה שימוש בקריטריוני בחירה זהים.
שאילתת הוספה מעתיקה רשומות מטבלה אחת או יותר לטבלה אחרת. הטבלאות המכילות את הרשומות שאתה מוסיף אינן מושפעות משאילתת ההוספה.
במקום להוסיף רשומות קיימות מטבלה אחרת, באפשרותך לציין ערך עבור כל שדה ברשומה חדשה בודדת באמצעות פסוקית VALUES. אם תשמיט את רשימת השדות, פסוקית VALUES חייבת לכלול ערך עבור כל שדה בטבלה; אחרת, הפעולה INSERT תיכשל. השתמש במשפט INSERT INTO נוסף עם פסוקית VALUES עבור כל רשומה נוספת שברצונך ליצור.
דוגמה למשפט INSERT INTO
דוגמה זו בוחרת את כל הרשומות בטבלה היפותטית בשם New Customers ומוסיפה אותן אל הטבלה Customers. כאשר לא מוגדרות עמודות בודדות, שמות עמודות הטבלה במשפט SELECT צריכות להיות תואמות בדיוק לשמות עמודות הטבלה במשפט INSERT INTO.
Sub InsertIntoX1()
Dim dbs As Database
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Select all records in the New Customers table
' and add them to the Customers table.
dbs.Execute " INSERT INTO Customers " _
& "SELECT * " _
& "FROM [New Customers];"
dbs.Close
End Sub
דוגמה זו יוצרת רשומה חדשה בטבלה Employees.
Sub InsertIntoX2()
Dim dbs As Database
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Create a new record in the Employees table. The
' first name is Harry, the last name is Washington,
' and the job title is Trainee.
dbs.Execute " INSERT INTO Employees " _
& "(FirstName,LastName, Title) VALUES " _
& "('Harry', 'Washington', 'Trainee');"
dbs.Close
End Sub
|