قد نستخدم INSERT INTO SQL الأمر لإضافة سجل إلى جدول في قاعدة بيانات.
إضافة سجل إلى جدول في قاعدة بيانات
نحن نريد لإضافة سجل جديد إلى جدول العملاء في قاعدة بيانات Northwind. علينا أولا إنشاء نموذج الذي يحتوي على حقول نريد لجمع البيانات من:
<html>
<body>
<form method="post" action="demo_add.asp">
<table>
<tr>
<td>CustomerID:</td>
<td><input name="custid"></td>
</tr><tr>
<td>Company Name:</td>
<td><input name="compname"></td>
</tr><tr>
<td>Contact Name:</td>
<td><input name="contname"></td>
</tr><tr>
<td>Address:</td>
<td><input name="address"></td>
</tr><tr>
<td>City:</td>
<td><input name="city"></td>
</tr><tr>
<td>Postal Code:</td>
<td><input name="postcode"></td>
</tr><tr>
<td>Country:</td>
<td><input name="country"></td>
</tr>
</table>
<br><br>
<input type="submit" value="Add New">
<input type="reset" value="Cancel">
</form>
</body>
</html>
عندما يضغط المستخدم على زر الإرسال يتم إرسال النموذج إلى ملف يسمى "demo_add.asp" . و "demo_add.asp" يحتوي الملف على التعليمات البرمجية التي من شأنها إضافة سجل جديد إلى جدول العملاء:
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
sql="INSERT INTO customers (customerID,companyname,"
sql=sql & "contactname,address,city,postalcode,country)"
sql=sql & " VALUES "
sql=sql & "('" & Request.Form("custid") & "',"
sql=sql & "'" & Request.Form("compname") & "',"
sql=sql & "'" & Request.Form("contname") & "',"
sql=sql & "'" & Request.Form("address") & "',"
sql=sql & "'" & Request.Form("city") & "',"
sql=sql & "'" & Request.Form("postcode") & "',"
sql=sql & "'" & Request.Form("country") & "')"
on error resume next
conn.Execute sql,recaffected
if err<>0 then
Response.Write("No update permissions!")
else
Response.Write("<h3>" & recaffected & " record added</h3>")
end if
conn.close
%>
</body>
</html>
مهم
إذا كنت تستخدم الأمر SQL INSERT تكون على علم بما يلي:
- إذا كان الجدول يحتوي على مفتاح أساسي، للتأكد من إلحاق قيمة فريدة، غير فارغة إلى حقل المفتاح الأساسي (إن لم يكن، ومزود قد لا إلحاق السجل، أو يحدث خطأ)
- إذا احتوى الجدول حقل ترقيم تلقائي، لا تشمل هذا المجال في الأمر SQL INSERT (سيتم أخذ قيمة هذا الحقل رعاية تلقائيا من قبل مزود)
ماذا عن الحقول مع عدم وجود بيانات؟
في قاعدة بيانات MS Access، يمكنك إدخال سلاسل ذات طول صفري ("") في نص أو ارتباط تشعبي وحقول المذكرة إذا قمت بتعيين الخاصية AllowZeroLength إلى نعم.
Note: ليس كل قواعد البيانات تدعم سلاسل ذات طول صفري وقد تسبب خطأ عند إضافة سجل مع الحقول الفارغة. ومن المهم أن تحقق ما أنواع البيانات تدعم قاعدة البيانات الخاصة بك.