ฐานข้อมูลแบ็กเอนด์:
[การเข้าถึงของไมโครซอฟต์]
และ
[ไมโครซอฟต์ SQL เซิร์ฟเวอร์]
หลังจากการแทนที่ รหัส ASP ควรคำนึงถึงสถานที่บางแห่งที่ต้องแก้ไข:
[1] ปัญหาการเชื่อมต่อ (ตัวอย่าง)
[การเข้าถึงของไมโครซอฟต์]
constr = "DBQ=c:dataclwz.mdb; DRIVER={ไดรเวอร์ Microsoft Access (*.mdb)}"
[ไมโครซอฟต์ SQL เซิร์ฟเวอร์]
constr = "DRIVER={SQL Server};SERVER=host;DATABASE=mydata;uid=sa;pwd="
[2] ฟังก์ชั่นที่คล้ายกัน (ตัวอย่าง)
[1]DATEDIFF(datepart, startdate, enddate)
ตัวเลือกพารามิเตอร์ "datepart" มีดังนี้:
คำอธิบายการตั้งค่า————————————
[การเข้าถึงของไมโครซอฟต์]
ปีๆๆๆ
ไตรมาสคิว
เดือน ม
จำนวนวันในปี y
วัน
วันในสัปดาห์ ว
โจว ww
ชั่วโมง ชั่วโมง
นาที
วินาที
[Microsoft Sql Server]
ปี ปปปปปปป
ไตรมาส qq, q
เดือน มม. ม
วันของปี dy, y
วัน วว ง
สัปดาห์ สัปดาห์ ww
ชั่วโมง ฮ
นาทีไมล์ n
เอสเอสที่สอง, ส
มิลลิวินาที ms
----------------------
โดยพื้นฐานแล้วมันก็เหมือนกัน แต่ให้ใส่ใจเมื่อเขียน
[Microsoft Access] เพิ่มเครื่องหมายคำพูด เช่น datediff('d',enddate,'2004/08/01')
[Microsoft Sql Server] ไม่จำเป็น เช่น datediff(d,enddate,'2004/08/01')
[2][Microsoft Access] สามารถใช้ฟังก์ชันการแปลงชนิดข้อมูล เช่น cstr และ
ใน [Microsoft Sql Server] ให้ใช้ฟังก์ชันแปลงหรือส่ง เช่น:
แปลง(varchar,[จำนวน]) ฯลฯ
[3] [เซิร์ฟเวอร์ Microsoft SQL]
หากต้องการดูเวลาปัจจุบัน ให้ใช้ getdate ฯลฯ...
[3] คำสั่ง
[ไมโครซอฟต์ SQL เซิร์ฟเวอร์]
มีอยู่
กรณี
เมื่อนั้น
เมื่อนั้น
-
อื่น
จบ
คำสั่งในขณะที่
[การเข้าถึงของไมโครซอฟต์]
ไม่รองรับ.
[Microsoft Access] ยังไม่รองรับคำสั่ง between
[Microsoft Sql Server] สามารถเขียนได้ดังนี้:
[วันที่] ระหว่าง @date1 ถึง @date2
[4] ตารางแบบสอบถาม
[ไมโครซอฟต์ SQL เซิร์ฟเวอร์]
สามารถสอบถามได้โดยการเข้าร่วมตั้งแต่สามตารางขึ้นไปและ
[การเข้าถึงของไมโครซอฟต์]
ดูเหมือนว่าสามารถเข้าร่วมได้เพียงสองตารางสำหรับการสืบค้น (ต้องได้รับการยืนยันจากผู้มีอำนาจ)
และ [Microsoft Sql Server] สามารถใช้ตัวเชื่อมต่อ "*=" และ "=*" ได้ [5] หารด้วยปัญหาศูนย์
[การเข้าถึงของไมโครซอฟต์]
เมื่อตัวหารเป็นศูนย์ บันทึกที่เกี่ยวข้องจะถูกละทิ้งโดยอัตโนมัติ และ
[ไมโครซอฟต์ SQL เซิร์ฟเวอร์]
ข้อผิดพลาดจะถูกรายงานและการสืบค้นจะถูกยกเลิก ลบรหัส:
[การเข้าถึงของไมโครซอฟต์]
คุณสามารถเขียนได้ดังนี้: ลบ * จาก [ตาราง]
[ไมโครซอฟต์ SQL เซิร์ฟเวอร์]
เขียนได้เพียงเท่านี้: ลบออกจาก [ตาราง]
หลายครั้งจะมีการรายงานข้อผิดพลาด
-
วันที่ปัจจุบัน:
[การเข้าถึงของไมโครซอฟต์]
ใช้วันที่()
[ไมโครซอฟต์ SQL เซิร์ฟเวอร์]
การใช้ getdate() หากฐานข้อมูลอาจเปลี่ยนประเภท คุณสามารถเพิ่มสิ่งนี้ลงในโค้ด ASP:
ถ้า inStr(constr,"Microsoft Access") > 0 แล้ว
sqlstr=[ไมโครซอฟต์แอคเซส][โค้ด sql]
อื่น
sqlstr=[เซิร์ฟเวอร์ Microsoft Sql][รหัส sql]
สิ้นสุดถ้า
(constr - สตริงการเชื่อมต่อ)
ด้วยวิธีนี้ แม้ว่าฐานข้อมูลจะมีการเปลี่ยนแปลง แต่ก็ไม่จำเป็นต้องเปลี่ยนแบบสอบถามฐานข้อมูลและอัปเดตโค้ด
นอกจากนี้: มีบันทึกฟิลด์จริงและเท็จในการเข้าถึง แต่มีเพียง Smallint ใน sql ตามลำดับ หากมี "ชื่อฟิลด์=true" ในการเข้าถึง ควรเปลี่ยนเป็น "ชื่อฟิลด์=1" ใน sql
โปรแกรม ASP ฟรีส่วนใหญ่บนอินเทอร์เน็ตใช้ฐานข้อมูลการเข้าถึง อย่างไรก็ตาม ฐานข้อมูลการเข้าถึงในฐานะระบบฐานข้อมูลแบบสแตนด์อโลนขนาดเล็กและขนาดกลาง มักจะล้นหลามเมื่อใช้กับแอปพลิเคชันเว็บไซต์ที่มีการเข้าชมและข้อมูลจำนวนมาก เป็นที่เชื่อกันโดยทั่วไปว่าประสิทธิภาพของฐานข้อมูลการเข้าถึงจะเริ่มลดลงอย่างมีนัยสำคัญเมื่อเกิน 50M หลังจากเกิน 100M ปัญหาข้อผิดพลาดและการทำงานที่ช้าจะเด่นชัดมากขึ้น แม้ว่าเราจะพยายามอย่างดีที่สุดเพื่อเพิ่มประสิทธิภาพจากมุมมองของโปรแกรมเพื่อปรับปรุงประสิทธิภาพเช่นเดียวกับที่เราทำหลังจาก Dongwang 7.0 แต่ก็ไม่สามารถแก้ปัญหาโดยพื้นฐานได้
ในเวลานี้ บางทีการใช้ฐานข้อมูล SQL Server ของ Microsoft อาจเป็นวิธีที่เป็นไปได้มากที่สุด แน่นอนว่าคุณสามารถใช้ฐานข้อมูลอื่นๆ เช่น Oracle, MySQL ฯลฯ ได้ แต่เป็นการเขียนใหม่ เนื่องจากเป็นทั้งผลิตภัณฑ์ของ Microsoft โดยเขียนใหม่ลงใน SQL Server ควรเป็นวิธีที่ประหยัดแรงงานที่สุด
1. ข้อกำหนดเบื้องต้นสำหรับการเขียนใหม่:
ติดตั้ง SQL Server2000 บนระบบแล้วและมีการติดตั้งโปรแกรมแก้ไข SP3 แล้ว แนะนำให้ใช้โปรแกรมแก้ไขที่รองรับการแก้ไขข้อความธรรมดาและมีการแสดงหมายเลขบรรทัด แน่นอนว่า FrontPage2003 ก็สามารถใช้ได้เช่นกัน แต่การแสดงหมายเลขบรรทัดในเวอร์ชันก่อนหน้านั้นใช้งานไม่ได้ง่ายนัก
ข้อกำหนดด้านความสามารถส่วนบุคคล: สามารถเข้าใจไวยากรณ์ ASP พื้นฐาน การดำเนินการเข้าถึงฐานข้อมูล และการดำเนินการพื้นฐานของ SQL Server Enterprise Manager
2. โดยทั่วไปแล้ว การเตรียมฐานข้อมูลมีอยู่ 2 สถานการณ์
คือ
1. โปรแกรมมีรูปแบบฐานข้อมูล SQL: มีไฟล์ MDF หรือมีไฟล์สคริปต์ SQL (ส่วนต่อท้าย .sql) สำหรับสร้างฐานข้อมูล SQL
หากมีไฟล์ mdf คุณสามารถแนบไฟล์ได้โดยตรงโดยใช้ Enterprise Manager หากมีไฟล์สคริปต์ sql มาให้ ให้ใช้ Enterprise Manager เพื่อสร้างฐานข้อมูล sql ด้วยตนเอง จากนั้นใช้ตัววิเคราะห์แบบสอบถามใน Enterprise Manager เพื่อเรียกใช้ script เพื่อสร้างตารางฐานข้อมูล
ฐานข้อมูลที่สร้างขึ้นในลักษณะนี้โดยพื้นฐานแล้วไม่จำเป็นต้องเขียนใหม่
2. ส่วนใหญ่ไม่มีฐานข้อมูล SQL หรือไฟล์สคริปต์ ในเวลานี้ คุณต้องดำเนินการด้วยตนเอง นี่เป็นปัญหาหลักที่โพสต์ของเราแก้ไขด้วย โดยทั่วไป โปรแกรมดังกล่าวจะมีฐานข้อมูลการเข้าถึง ดังนั้นคุณสามารถใช้ Enterprise Manager เพื่อนำเข้าฐานข้อมูลการเข้าถึงได้ หลังจากนำเข้าแล้ว คุณจะต้องเขียนสิ่งต่อไปนี้ใหม่:
เปรียบเทียบกับการเข้าถึงแบบเดิม ให้เขียนส่วนต่อไปนี้ใหม่:
(1) ตารางฐานข้อมูล SQL ไม่มีฟิลด์อัตโนมัติ ดังนั้นฟิลด์อัตโนมัติดั้งเดิมในการเข้าถึงจะถูกแปลงเป็นฟิลด์ธรรมดา และจำเป็นต้องเปลี่ยนด้วยตนเองเป็นประเภทการระบุตัวตน โดยเพิ่มขึ้น 1
(2) สำหรับฟิลด์เวลาทั้งหมด หากมีการกำหนดค่าเริ่มต้น จะต้องเป็น now() และจำเป็นต้องเปลี่ยนเป็น getdate()
(3) โดยทั่วไปค่าเริ่มต้นของฟิลด์ต้นฉบับจะไม่ถูกนำมาใช้โดยอัตโนมัติ และจำเป็นต้องเพิ่มด้วยตนเองกับฟิลด์ของตารางต้นฉบับ
(4) เนื่องจากฐานข้อมูลที่แตกต่างกัน การเข้าถึงฟิลด์หลายประเภทและ sql เปลี่ยนแปลงหลังจากการแปลง ตัวอย่างเช่น ฟิลด์ "ไม่ว่า" ดั้งเดิมจะถูกแปลงเป็นบิตหรือ int ฟิลด์บันทึกจะถูกแปลงเป็นข้อความยาว ฟิลด์ข้อความจะเป็น แปลงเป็น varchar ฯลฯ โดยทั่วไปแล้วจะไม่ส่งผลต่อการทำงานของโปรแกรม หากมีปัญหา เราจะหารือในส่วนการเขียนโปรแกรมใหม่ด้านล่าง
(5) หากคุณต้องการใช้โปรแกรม For SQL ที่ใช้ขั้นตอนการจัดเก็บ คุณควรมีวิธีสร้างฐานข้อมูล SQL ในโปรแกรมเอง: มีไฟล์ฐานข้อมูล SQL ของตัวเอง หรือสคริปต์ sql หากไม่มี ให้ใช้การนำเข้า วิธีฐานข้อมูลการเข้าถึงไม่สามารถสร้างขั้นตอนการจัดเก็บได้ ดังนั้นคุณควรละทิ้งสิ่งนี้ สำหรับเวอร์ชันโปรแกรม SQL ให้ใช้โปรแกรม For Access เวอร์ชันเดียวกัน นำเข้าฐานข้อมูลการเข้าถึง จากนั้นใช้วิธีการเขียนใหม่ต่อไปนี้เพื่อเปลี่ยนเป็นเวอร์ชัน SQL โปรแกรมด้วยตัวคุณเอง
3. หากต้องการเขียนสตริงการเชื่อมต่อใหม่
โปรดดูส่วนนี้ของ Dongwang ซึ่งมีไว้สำหรับการเข้าถึงและ SQL ตามลำดับ
DimConnStr
ถ้า IsSqlDataBase = 1 แล้ว
'พารามิเตอร์การเชื่อมต่อฐานข้อมูล sql: ชื่อฐานข้อมูล, รหัสผ่านผู้ใช้, ชื่อผู้ใช้, ชื่อการเชื่อมต่อ (ใช้ภายในเครื่อง, ใช้ IP ในต่างประเทศ)
Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName
SqlDatabaseName = "dvbbs7"
SqlPassword = ""
SqlUsername = "dvbbs"
SqlLocalName = "(ท้องถิ่น)"
ConnStr = "ผู้ให้บริการ = Sqloledb; ID ผู้ใช้ = " & SqlUsername & "; รหัสผ่าน = " & SqlPassword & "; แค็ตตาล็อกเริ่มต้น = " & SqlDatabaseName & "; แหล่งข้อมูล = " & SqlLocalName & ";"
อื่น
'สำหรับผู้ใช้ฟรี โปรดแก้ไขที่อยู่ฐานข้อมูลและชื่อฐานข้อมูลในไดเร็กทอรีข้อมูลตามลำดับ เช่น เปลี่ยน dvbbs6.mdb เป็น dvbbs6.asp
'http://www.downcodes.com/'
Db = "data/fengerqingqing.mdb"
ConnStr = "ผู้ให้บริการ = Microsoft.Jet.OLEDB.4.0;แหล่งข้อมูล = " & Server.MapPath(db)
สิ้นสุดถ้า
เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป
ตั้งค่า conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
แน่นอน หากคุณใช้ SQL คำสั่งการเข้าถึงสามารถลบออกได้ นั่นคือ หลังจากนั้น และก่อนที่ข้อผิดพลาดจะดำเนินการต่อ จะเป็นดังนี้:
Dim ConnStr
'พารามิเตอร์การเชื่อมต่อฐานข้อมูล sql: ชื่อฐานข้อมูล, รหัสผ่านผู้ใช้, ชื่อผู้ใช้, ชื่อการเชื่อมต่อ (ใช้ภายในเครื่อง, ใช้ IP ในต่างประเทศ)
Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName
SqlDatabaseName = "dvbbs7"
SqlPassword = ""
SqlUsername = "dvbbs"
SqlLocalName = "(ท้องถิ่น)"
ConnStr = "ผู้ให้บริการ = Sqloledb; ID ผู้ใช้ = " & SqlUsername & "; รหัสผ่าน = " & SqlPassword & "; แค็ตตาล็อกเริ่มต้น = " & SqlDatabaseName & "; แหล่งข้อมูล = " & SqlLocalName & ";"
เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป
ตั้งค่า conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
สามารถกระชับและเขียนได้ดังนี้:
ตั้งค่า conn = Server.CreateObject("ADODB.Connection")
conn.open "ผู้ให้บริการ = Sqloledb; ID ผู้ใช้ = sa; รหัสผ่าน = 1234567; แค็ตตาล็อกเริ่มต้น = dvbbs7; แหล่งข้อมูล = (ท้องถิ่น);"
เขียนชื่อฐานข้อมูล แหล่งข้อมูล ผู้ใช้ และรหัสผ่านใหม่ตามสถานการณ์จริงของคุณ
4. การเขียนโปรแกรมใหม่
มีสองสถานการณ์:
1. หากคุณโชคดีและได้รับโปรแกรม For SQL หากไม่มีปัญหาในกระบวนการสร้างฐานข้อมูลข้างต้น โปรแกรมก็สามารถทำงานได้ตามปกติ หากมีข้อผิดพลาด แสดงว่าเป็นเพียงข้อผิดพลาดในโปรแกรมเท่านั้น แก้ไขไม่ได้กล่าวถึงในโพสต์นี้ เนื้อหาจะไม่อธิบายโดยละเอียด
2. ในกรณีส่วนใหญ่ ตัวโปรแกรมจะเป็น For Access ความแตกต่างจากโปรแกรม For SQL ส่วนใหญ่จะอยู่ที่คำสั่ง SQL ที่ใช้ในโปรแกรม โปรดทราบว่าคำสั่งสืบค้น SQL เป็นส่วนสำคัญของแอปพลิเคชันฐานข้อมูล ไวยากรณ์ที่ใช้โดยโปรแกรมไม่ว่าจะเป็นสำหรับ SQL หรือสำหรับ Aceess จะเหมือนกันโดยประมาณ แต่มีความแตกต่างเล็กน้อยที่ทำให้โปรแกรมไม่เป็นสากล และ สิ่งที่เราต้องการ เนื้อหาหลักของการปรับเปลี่ยน ชิ้นส่วนที่ต้องแก้ไขโดยทั่วไปมีดังนี้:
(1) ปัญหาของฟังก์ชันเวลา: ฟังก์ชันเวลาของฐานข้อมูล SQL แตกต่างจากฟังก์ชันการเข้าถึง ฟังก์ชันที่พบบ่อยที่สุดคือการรับเวลาปัจจุบัน () และ SQL คือ getdate () ดังนั้นเมื่อใดก็ตามที่ใช้ now() ในส่วนคำสั่ง Where จะต้องเปลี่ยนเป็น getdate() โปรดทราบว่าจะต้องใช้ฟังก์ชัน now() ในโปรแกรม asp ด้วย แบบสอบถามหรือคำสั่งการดำเนินการ ต้องแน่ใจว่าไม่ได้เปลี่ยนแปลง
(2) ฟังก์ชันการเปรียบเทียบเวลา: datediff('d','time1','time2') นี่คือรูปแบบที่ใช้สำหรับการสืบค้นการเข้าถึง เครื่องหมายคำพูดเหล่านี้ใน SQL จะต้องถูกลบออก ในเวลาเดียวกัน # อาจถูกเพิ่มก่อน และ หลังจากรูปแบบเวลาก็ต้องลบออกด้วย ในทำนองเดียวกัน ยังอ้างถึงคำสั่ง sql และคำสั่ง asp ควรคงสภาพเดิมไว้
(3) การแสดงค่า null: ในการเข้าถึง โดยทั่วไปการตัดสินค่า null จะแสดงด้วยว่า ="" แต่สิ่งนี้มักจะผิดพลาดใน SQL หากคุณพบปัญหาข้อผิดพลาดหรือโปรแกรมไม่ทำงานตามปกติ คุณสามารถเปลี่ยนแปลงได้ ที่จะตัดสินแบบนี้ :ที่ไหน (ชื่อเป็นโมฆะ)
(4) การตัดสินค่าจริงและเท็จ: คุณสามารถใช้ =true และ =false เพื่อตัดสินในการเข้าถึง แต่จะทำให้เกิดข้อผิดพลาดใน SQL ดังนั้นในการสืบค้น SQL หรือคำสั่งดำเนินการ การตัดสินประเภทนี้ควรเปลี่ยนเป็น =1 และ =0 ตามลำดับ หมายเหตุ: แม้ว่าบางโปรแกรมจะเขียน = "true" แต่เนื่องจากเครื่องหมายคำพูด ฟิลด์นี้จึงเป็นประเภทอักขระ คุณไม่สามารถเปลี่ยนเป็น =1 ได้ แต่ให้คงไว้เหมือนเดิม
ข้างต้นเป็นสถานที่ที่พบบ่อยในการเขียนใหม่ และมีบางส่วนที่ไม่ธรรมดา หากคุณพบพวกเขา คุณสามารถตอบกลับที่นี่เพื่อหารือเกี่ยวกับพวกเขา
5. การดีบักโปรแกรม
ขอแนะนำให้ใช้โปรแกรมแก้ไขที่มีหมายเลขบรรทัด เนื่องจากการเขียนใหม่ข้างต้นไม่น่าจะทำได้โดยการค้นหาซอร์สโค้ดของโปรแกรมโดยตรง และเป็นการยากที่จะค้นหาทั้งหมด
โดยทั่วไปวิธีที่ฉันใช้มีดังนี้: หลังจากเขียนฐานข้อมูลใหม่เสร็จสิ้น โปรแกรมจะถูกดีบั๊กโดยตรง หลังจากเกิดข้อผิดพลาด ให้ดูที่ข้อความแสดงข้อผิดพลาดและค้นหาบรรทัดโค้ดของไฟล์ที่เกี่ยวข้อง อย่างไรก็ตาม สาเหตุที่แท้จริงมักไม่เป็นเช่นนั้น บรรทัดนั้น ตัวอย่างเช่น ข้อความแจ้งข้อผิดพลาดคือ conn.execute(sql) แต่ประโยคนี้เองก็ไม่ผิด ไปสู่วิธีการแก้ไขโปรแกรมดังที่กล่าวข้างต้น
หลังจากนำเข้าฐานข้อมูลแล้ว จะต้องเขียนฟิลด์ที่เพิ่มโดยอัตโนมัติ และประเภทตัวเลขทั้งหมดจะต้องเพิ่มความยาว วิธีที่ดีที่สุดคือใช้ทศนิยม
ค่าเริ่มต้นทั้งหมดจะหายไป ส่วนใหญ่เป็นประเภทตัวเลขและประเภทวันที่
ตอนนี้ (), เวลา (), วันที่ () ควรเปลี่ยนเป็น getdate ()
datediff('d', time1, time2) ทั้งหมดควรเปลี่ยนเป็น datediff(day, time1, time2)
เป็นไปได้ว่าบางประเภท true/false ไม่สามารถใช้ได้ และควรเปลี่ยนเป็น 1/0
ต้องใช้ประเภทหมายเหตุผ่านการหล่อ (คอลัมน์เป็น varchar)
CursorType จำเป็นต้องเปลี่ยนเป็น 1 กล่าวคือ จะต้องระบุพารามิเตอร์ตัวเลขตัวแรกเป็น 1 เมื่อเปิดฐานข้อมูล มิฉะนั้นบันทึกอาจแสดงได้ไม่สมบูรณ์
เมื่อแปลง isnull(rowname) เป็น rowname = null
ประเภทการกำหนดหมายเลขอัตโนมัติในฐานข้อมูล ACCESS จะไม่ถูกตั้งค่าเป็นประเภทการกำหนดหมายเลขอัตโนมัติโดย SQL Server เราจำเป็นต้องเพิ่มข้อมูลประจำตัวให้กับคำสั่งการสร้าง SQL เพื่อระบุการกำหนดหมายเลขอัตโนมัติ!
ในระหว่างการแปลง SQL SERVER จะมีค่าเริ่มต้นเป็นประเภทวันที่และเวลาขนาดเล็กสำหรับฟิลด์ที่เกี่ยวข้องกับวันที่ วิธีที่ดีที่สุดคือเปลี่ยนเป็นประเภทวันที่และเวลา เนื่องจากประเภทวันที่และเวลามีช่วงที่ใหญ่กว่าประเภทวันที่และเวลาขนาดเล็ก บางครั้งเมื่อใช้ประเภทวันที่และเวลาขนาดเล็ก การแปลงจะล้มเหลว แต่เมื่อใช้ประเภทวันที่เวลา การแปลงจะสำเร็จ
คำสั่ง SQL ที่ใช้ในการดำเนินการกับฐานข้อมูลทั้งสองนั้นไม่เหมือนกันทุกประการ ตัวอย่างเช่น เมื่อลบบันทึกในฐานข้อมูล ACCESS ให้ใช้: "delete * from user โดยที่ id=10" ในขณะที่เมื่อลบฐานข้อมูล SQL SERVER ให้ใช้: " ลบผู้ใช้โดยที่ id=10"
ฟังก์ชันวันที่จะแตกต่างกัน เมื่อประมวลผลฐานข้อมูล ACCESS สามารถใช้ฟังก์ชันเช่น date() และ time() ได้ อย่างไรก็ตาม เมื่อประมวลผลฐานข้อมูล SQL SERVER จะมีเฉพาะฟังก์ชัน เช่น datediff และ dateadd สามารถใช้ได้ แต่ไม่สามารถใช้ date( ), time() และฟังก์ชันอื่นๆ ได้
เมื่อประมวลผลฐานข้อมูล ACCESS ฟังก์ชัน VB บางอย่าง เช่น ฟังก์ชัน cstr() สามารถนำมาใช้โดยตรงในคำสั่ง sql แต่เมื่อประมวลผลฐานข้อมูล SQL SERVER จะไม่สามารถใช้งานได้
ตารางต่อไปนี้เปรียบเทียบฐานข้อมูล Microsoft Access (ฐานข้อมูล Microsoft Access: คอลเลกชันของข้อมูลและวัตถุ เช่น ตาราง แบบสอบถาม หรือแบบฟอร์ม ที่เกี่ยวข้องกับหัวข้อหรือวัตถุประสงค์เฉพาะ โปรแกรมฐานข้อมูล Microsoft Jet ใช้เพื่อจัดการข้อมูล) และ โครงการ Microsoft Access (โครงการ Microsoft Access: ไฟล์เข้าถึงที่เชื่อมต่อกับฐานข้อมูล Microsoft SQL Server และใช้เพื่อสร้างแอปพลิเคชันไคลเอ็นต์/เซิร์ฟเวอร์ ไฟล์โครงการไม่มีข้อมูลหรือวัตถุที่อิงตามข้อมูล (เช่น ตารางหรือมุมมอง) ลักษณะฟิลด์ของชนิดข้อมูล ได้แก่ บูลีน จำนวนเต็ม ยาว สกุลเงิน เดี่ยว คู่ วันที่ สตริง และตัวแปร (ค่าเริ่มต้น)
ประเภทข้อมูล Microsoft Access ประเภทข้อมูลเซิร์ฟเวอร์ SQL ใช่/ไม่ใช่ (ประเภทข้อมูลใช่/ไม่ใช่: ประเภทข้อมูลเขตข้อมูลที่ใช้สำหรับเขตข้อมูลที่มีค่าที่เป็นไปได้เพียงสองค่า (เช่น ใช่หรือไม่ใช่ จริงหรือเท็จ) ค่า Null ไม่ใช่ อนุญาต) บิต (ชนิดข้อมูลบิต: ในโครงการ Access ชนิดข้อมูลที่จัดเก็บค่า 1 หรือ 0 ยอมรับค่าจำนวนเต็มอื่นที่ไม่ใช่ 1 และ 0 แต่ตีความว่าเป็น 1 เสมอ)
ตัวเลข (ชนิดข้อมูลตัวเลข: ชนิดข้อมูลเขตข้อมูลในฐานข้อมูล Microsoft Access ที่ใช้สำหรับข้อมูลตัวเลขที่จะใช้ในการดำเนินการทางคณิตศาสตร์ อย่างไรก็ตาม หากคุณต้องการแสดงหรือคำนวณมูลค่าทางการเงิน คุณควรใช้ชนิดข้อมูลสกุลเงิน) (ไบต์) Tinyint (ชนิดข้อมูล Tinyint: ชนิดข้อมูลหนึ่งไบต์ (8 บิต) ในโครงการ Access ใช้ในการจัดเก็บจำนวนเต็มตั้งแต่ 0 ถึง 255)
Number (จำนวนเต็ม) Smallint (ชนิดข้อมูล Smallint: ชนิดข้อมูล 2 ไบต์ (16 บิต) ในโครงการ Access โดยจัดเก็บตัวเลขระหว่าง -2^15(-32,768) และ 2^15-1(32,767) .)
Number (จำนวนเต็มยาว) int (ชนิดข้อมูล int: ชนิดข้อมูล 4 ไบต์ (32 บิต) ในโครงการ Access โดยเก็บค่าระหว่าง -2^31(-2,147,483,648) และ 2^31-1(2,147,483,647) ตัวเลข .)
ตัวเลข (ชนิดจุดทศนิยมความแม่นยำเดียว) จริง (ชนิดข้อมูลจริง: ในโครงการ Access ชนิดข้อมูลตัวเลขโดยประมาณที่มีความแม่นยำ 7 หลัก ค่าบวกอยู่ระหว่าง 1.18E-38 ถึง 3.40E+38 ค่าลบ ช่วงค่าจะอยู่ที่ประมาณตั้งแต่ -1.18E-38 ถึง -3.40E+38 และอาจเป็น 0 ก็ได้)
(ไม่มีชนิดข้อมูลที่เทียบเท่า) bigint (ชนิดข้อมูล bigint: ชนิดข้อมูล 8 ไบต์ (64 บิต) ในโครงการ Access ซึ่งเก็บไว้ระหว่าง -2^63 (-9,223,372,036,854,775,808) และ 2^63-1 (9,223,372,036,854,775,807) )
ตัวเลข (จุดลอยตัวที่มีความแม่นยำสองเท่า) ทศนิยม (ประเภทข้อมูลลอย: ในโครงการ Access ประเภทข้อมูลตัวเลขโดยประมาณที่มีความแม่นยำ 15 หลัก ช่วงของค่าบวกที่เก็บไว้จะอยู่ที่ประมาณ 2.23E-308 ถึง 1.79E+ 308 ช่วงค่าลบจะอยู่ที่ประมาณ -2.23E-308 ถึง -1.79E+308 หรืออาจเป็น 0 ก็ได้)
สกุลเงิน (ชนิดข้อมูล "สกุลเงิน": ชนิดข้อมูลในฐานข้อมูล Microsoft Access ที่ใช้สำหรับการคำนวณที่เกี่ยวข้องกับสกุลเงินหรือการคำนวณจุดคงที่ซึ่งความถูกต้องเป็นสิ่งสำคัญอย่างยิ่ง) เงิน (ชนิดข้อมูลเงิน: ในโครงการ Access ใช้ในการจัดเก็บสกุลเงิน ข้อมูล ประเภทของค่า ช่วงค่าคือ -922,337,203,685,477.5707 ถึง 922,337,203,685,477.5807 ความแม่นยำคือหนึ่งในหมื่นของหน่วยสกุลเงิน)
Smallmoney (ชนิดข้อมูล Smallmoney: ชนิดข้อมูลที่จัดเก็บค่าสกุลเงินในโครงการ Access ช่วงค่า คือตั้งแต่ - 214,748.3648 ถึง 214,748.3647 โดยมีความแม่นยำหนึ่งในหมื่นหน่วยการเงิน เมื่อแสดงค่า Smallmoney ค่าเหล่านั้นจะถูกปัดเศษเป็นทศนิยมสองตำแหน่ง)
ทศนิยม/ตัวเลข (ชนิดข้อมูลทศนิยม (ฐานข้อมูล Access): ชนิดข้อมูลตัวเลขที่แน่นอนที่ใช้ในการจัดเก็บค่าตั้งแต่ -10^38-1 ถึง 10^38-1 ช่วงตัวเลข (จำนวนหลักรวมสูงสุด) และความแม่นยำ (จุดทศนิยม) สามารถ ระบุจำนวนหลักทางด้านขวา) ) ทศนิยม (ชนิดข้อมูลทศนิยม (Access project) : ชนิดข้อมูลตัวเลขที่แน่นอนใช้ในการเก็บค่าตั้งแต่ -10^38-1 ถึง 10^38-1 ช่วงตัวเลข (สูงสุด) หลักทั้งหมด) สามารถระบุหมายเลขได้) และความแม่นยำ (จำนวนหลักสูงสุดทางด้านขวาของจุดทศนิยม))
ตัวเลข (ประเภทข้อมูลตัวเลข: ในโครงการ Access ชนิดข้อมูลตัวเลขที่แม่นยำที่มีค่าตั้งแต่ -10^38 -1 ถึง 10^38-1 สามารถระบุช่วงตัวเลข (จำนวนหลักรวมสูงสุด) และความแม่นยำ (จำนวนหลักสูงสุดทางด้านขวาของจุดทศนิยม)
วันที่/เวลา (ชนิดข้อมูล "วันที่/เวลา": ชนิดข้อมูลในฐานข้อมูล Access ใช้เพื่อเก็บข้อมูลวันที่และเวลา) วันที่และเวลา (ชนิดข้อมูลวันที่และเวลา: ในโครงการ Access ชนิดข้อมูลของวันที่และเวลา ตั้งแต่ปี 1753 ตั้งแต่วันที่ 1 มกราคมถึง 31 ธันวาคม 9999 ความแม่นยำคือสามในร้อยของวินาที หรือ 3.33 มิลลิวินาที) วันที่
และเวลาขนาดเล็ก (ชนิดข้อมูลวันที่และเวลาขนาดเล็ก: ชนิดข้อมูลวันที่และเวลาในโครงการ Access ความแม่นยำไม่ดีเท่ากับวันที่และเวลา ข้อมูล ประเภท ช่วงค่าข้อมูลคือตั้งแต่ 1 มกราคม 1900 ถึง 6 มิถุนายน 2079 โดยมีความแม่นยำหนึ่งนาที)
AutoNumber (ประเภทข้อมูล "AutoNumber": ประเภทข้อมูลฟิลด์ในฐานข้อมูล Microsoft Access ที่จะจัดเก็บหมายเลขที่ไม่ซ้ำกันสำหรับแต่ละระเบียนโดยอัตโนมัติเมื่อมีการเพิ่มระเบียนใหม่ลงในตาราง สามารถสร้างได้สามประเภท หมายเลข: หมายเลขลำดับ หมายเลขสุ่ม และซิงโครนัส ID การจำลองแบบ ) (เพิ่มขึ้น) int (ประเภทข้อมูล int: ชนิดข้อมูล 4 ไบต์ (32 บิต) ในโครงการ Access เก็บไว้ที่ -2^31 (-2,147,483,648) และ 2 ^31-1(2,147,483,647)) ( มีการกำหนดแอตทริบิวต์ข้อมูลประจำตัว)
ข้อความ (ชนิดข้อมูล "ข้อความ": ชนิดข้อมูลเขตข้อมูลในฐานข้อมูล Microsoft Access ชนิดข้อมูล "ข้อความ" สามารถมีอักขระได้สูงสุด 255 ตัว หรืออักขระจำนวนน้อยกว่าที่ระบุโดยคุณสมบัติ FieldSize) (n) varchar( n ) (ชนิดข้อมูล varchar(n): ชนิดข้อมูลที่มีความยาวผันแปรในโครงการ Access ที่มีความยาวสูงสุด 8,000 อักขระ ANSI)
nvarchar(n) (ชนิดข้อมูล nvarchar(n): ในโครงการ Access ข้อมูลความยาวผันแปรได้ A ชนิดที่สามารถมีอักขระ Unicode ได้สูงสุด 4,000 ตัว อักขระ Unicode จะใช้พื้นที่ 2 ไบต์ต่ออักขระ และรองรับอักขระสากลทั้งหมด)
หมายเหตุ (ชนิดข้อมูล "หมายเหตุ": ชนิดข้อมูลเขตข้อมูลในฐานข้อมูล Microsoft Access เขตข้อมูล "หมายเหตุ" สามารถมีอักขระได้สูงสุด 65,535 ตัว) ข้อความ (ประเภทข้อมูลข้อความ: ชนิดข้อมูลที่มีความยาวผันแปรในโครงการ Access สามารถจัดเก็บได้ สูงสุด 2^31-1(2,147,483,647) อักขระ ความยาวเริ่มต้นคือ 16)
OLE Object (ชนิดข้อมูล "OLE Object": หนึ่งในชนิดข้อมูลสำหรับเขตข้อมูลที่ใช้ในวัตถุที่สร้างขึ้นในแอปพลิเคชันอื่นที่สามารถเชื่อมโยงหรือฝัง (แทรก) ลงในฐานข้อมูล Access) รูปภาพ (ชนิดข้อมูลรูปภาพ: ใน Access ในโครงการ ชนิดข้อมูลที่มีความยาวผันแปรสามารถจัดเก็บข้อมูลไบนารี่ได้มากถึง 2^31-1 (2,147,483,647) ไบต์ ชนิดข้อมูลรูปภาพใช้เพื่อจัดเก็บ BLOB (วัตถุไบนารีขนาดใหญ่) เช่น รูปภาพ เอกสาร เสียง และไฟล์ รหัสที่คอมไพล์แล้ว)
ID การจำลองแบบซิงโครนัส (หรือที่เรียกว่า Globally Unique Identifier (GUID): ในฐานข้อมูล Access ฟิลด์ขนาด 16 ไบต์ที่ใช้เพื่อสร้างตัวระบุเฉพาะสำหรับการจำลองแบบซิงโครนัส GUID ใช้เพื่อระบุแบบจำลอง ชุดแบบจำลอง ตาราง เรกคอร์ด และอ็อบเจ็กต์อื่น ๆ ใน ฐานข้อมูล Access GUID อ้างอิงถึง ID การจำลองแบบซิงโครนัส (GUID)) ตัวระบุที่ไม่ซ้ำกัน (ชนิดข้อมูลตัวระบุที่ไม่ซ้ำกัน: ในโครงการ Access ตัวระบุที่ไม่ซ้ำกันทั่วโลกขนาด 16 ไบต์ (GUID)) (ใช้ได้กับ SQL Server 7.0 หรือสูงกว่าเวอร์ชันที่สูงกว่าเท่านั้น)
ไฮเปอร์ลิงก์ (ชนิดข้อมูล "ไฮเปอร์ลิงก์": ชนิดข้อมูลของเขตข้อมูลฐานข้อมูล Access ที่เก็บที่อยู่ไฮเปอร์ลิงก์ ที่อยู่สามารถมีได้สูงสุดสี่ส่วนและเขียนในรูปแบบไวยากรณ์ต่อไปนี้: displaytext#address#subaddress#.) char (ชนิดข้อมูล char : ในโปรเจ็กต์ Access ชนิดข้อมูลที่มีความยาวคงที่สามารถมีอักขระ Unicode ได้สูงสุด 8,000 ตัว )
nchar (ชนิดข้อมูล nchar: ในโปรเจ็กต์ Access ชนิดข้อมูลที่มีความยาวคงที่สามารถมีอักขระ Unicode ได้สูงสุด 4,000 ตัว Unicode แต่ละตัว อักขระมีขนาดสองไบต์ และรองรับอักขระสากลทั้งหมด), varchar, nvarchar (แอตทริบิวต์ไฮเปอร์ลิงก์ถูกตั้งค่าเป็น ใช่)
(ไม่มีชนิดข้อมูลที่เทียบเท่า) varbinary (ชนิดข้อมูล varbinary: ชนิดข้อมูลที่มีความยาวผันแปรได้ในโครงการ Access ที่สามารถจัดเก็บข้อมูลไบนารีได้ถึง 8,000 ไบต์)
(ไม่มีชนิดข้อมูลที่เทียบเท่า) Smallint (ชนิดข้อมูล Smallint: ชนิดข้อมูล 2 ไบต์ (16 บิต) ในโครงการ Access ซึ่งเก็บไว้ระหว่าง -2^15(-32,768) และ 2^15-1(32,767) )
(ไม่มีประเภทข้อมูลที่เทียบเท่า) การประทับเวลา (ประเภทข้อมูลการประทับเวลา: ในโครงการ Access ชนิดข้อมูลที่ได้รับการอัปเดตโดยอัตโนมัติทุกครั้งที่แทรกหรืออัปเดตแถว ค่าในคอลัมน์การประทับเวลาไม่ใช่ข้อมูลวันที่และเวลา แต่เป็นไบนารี (8) หรือ varbinary (8) ระบุลำดับการแก้ไขข้อมูล)
(ไม่มีประเภทข้อมูลที่เทียบเท่า) charnchar
(ไม่มีชนิดข้อมูลที่เทียบเท่ากัน) sql_variant (ชนิดข้อมูล sql_variant : เป็นชนิดข้อมูลในโครงการ Access ที่เก็บค่าของข้อมูลหลายประเภทนอกเหนือจากชนิดข้อความ, ntext, รูปภาพ, การประทับเวลา และ sql_variant ในคอลัมน์ พารามิเตอร์ ตัวแปร หรือใช้ใน ค่าส่งคืนของฟังก์ชันที่ผู้ใช้กำหนด)
(ไม่มีชนิดข้อมูลที่เทียบเท่า) ผู้ใช้กำหนด (ประเภทข้อมูลที่ผู้ใช้กำหนด: ในฐานข้อมูล Microsoft SQL Server อนุญาตให้กำหนดประเภทของข้อมูลที่อยู่ในคอลัมน์ได้โดยผู้ใช้โดยใช้คำจำกัดความประเภทข้อมูลของระบบที่มีอยู่ กฎและ ค่าเริ่มต้นสามารถผูกไว้กับประเภทข้อมูลที่ผู้ใช้กำหนดเท่านั้น)
หมายเหตุในโครงการ Access หรือฐานข้อมูล SQL Server คำนำหน้า "n" หมายถึง "ประเทศ/ภูมิภาค" ซึ่งหมายความว่าประเภทข้อมูลนี้เปิดใช้งาน Unicode . ในฐานข้อมูล Access คอลัมน์ข้อความทั้งหมดจะเปิดใช้งาน Unicode ตามค่าเริ่มต้น
ปัญหาที่คุณต้องใส่ใจเมื่อแปลง ACCESS เป็น SQL
13-2-2549 16:01:20 น
เพื่อนหลายคนต้องการใช้วิธีการเขียนโปรแกรมฐานข้อมูล SQL2000 แต่พวกเขากำลังเรียนรู้ ACCESS และมีความเข้าใจเพียงเล็กน้อยเกี่ยวกับ SQL ที่นี่ฉันจะให้ข้อมูลอ้างอิงต่อไปนี้แก่คุณ --- วิธีการและข้อควรระวังในการแปลง ACCESS เป็น SQL2000 ก่อนอื่น สิ่งที่ฉันกำลังพูดถึงคือการแปลงระหว่าง ACCESS2000 และ SQL2000 ฉันยังไม่ได้ลองใช้ตัวอื่น ฉันหวังว่าคุณจะสามารถทดลองมากกว่านี้ได้ และจะต้องมีวิธี
2. วิธีการแปลง
1. เปิด "แหล่งฐานข้อมูล" ใน "เครื่องมือการดูแลระบบ" ใต้ "แผงควบคุม"
2. คลิก "เพิ่ม" เพื่อเพิ่มแหล่งข้อมูลใหม่ และเลือก "DriverdomicrosoftAccess" ในคอลัมน์การเลือก
(*.mdb)" เมื่อเสร็จแล้วจะมีกล่องปรากฏ
ขึ้นมา ใส่ชื่อที่ต้องการเขียนลงใน "Database Source" ผมตั้งชื่อว่า "ABC" แสดงว่าไม่ต้องกรอก จากนั้นกดเลือกด้านล่าง เพื่อค้นหาที่อยู่ฐานข้อมูลและการเลือกของคุณ (หมายเหตุ โปรดสำรองฐานข้อมูล ACCESS ของคุณก่อน) จากนั้นจึงยืนยัน
แหล่งข้อมูลถูกสร้างขึ้นที่นี่ และสิ่งที่เหลืออยู่คือการแปลง
3. เปิด SQL2000 Enterprise Manager ป้อนฐานข้อมูล และสร้างฐานข้อมูลเปล่าใหม่ "ABC"
4. เลือกฐานข้อมูลที่สร้างขึ้นใหม่ คลิกขวาที่เมาส์ เลือก "นำเข้าข้อมูล" ใต้ "งานทั้งหมด" แล้วคลิก "ถัดไป" เพื่อดำเนินการต่อ
5. เลือก "DriverdoMicrosoft Access (*.mdb)" ในรายการดรอปดาวน์แหล่งฐานข้อมูล ใน "User/System DSN" เลือก "ABC" ที่คุณเพิ่งเพิ่มแล้วคลิก "Next";
6. ไม่จำเป็นต้องแก้ไข "วัตถุประสงค์" เลือกเซิร์ฟเวอร์ (โดยปกติจะเป็นเครื่องของคุณเอง "ในเครื่อง" คุณสามารถเลือกที่อยู่เซิร์ฟเวอร์หรือที่อยู่ LAN เพื่อตรวจสอบว่าสิทธิ์ของคุณสามารถทำงานได้หรือไม่) "ใช้การรับรองความถูกต้องของ WINDOWS" หมายถึงการใช้ สำหรับการดำเนินการระบุตัวตนของผู้ดูแลระบบของคุณเอง คุณสามารถใช้ "ใช้การตรวจสอบการดำเนินการระบุตัวตน SQL" สำหรับการดำเนินการเว็บไซต์ได้ และแนะนำให้ใช้อย่างหลัง
7. หลังจากเลือก "ใช้การยืนยันการดำเนินการข้อมูลประจำตัว SQL" แล้ว ให้กรอกชื่อผู้ใช้และรหัสผ่านของคุณ ฉันเลือกหมายเลขเริ่มต้นของระบบ "sa" และ "****" สำหรับฐานข้อมูล ให้เลือก "ABC" ที่สร้างขึ้นใหม่แล้วกด " ขั้นตอนต่อไป";
8. มีสองตัวเลือกในขั้นตอนนี้ "คัดลอกตารางและมุมมองจากแหล่งข้อมูล" และ "ใช้คำสั่งแบบสอบถามเพื่อระบุข้อมูลที่จะถ่ายโอน" เลือกแบบเดิมแล้วคลิก "ถัดไป" เพื่อดำเนินการต่อ
9. ตารางฐานข้อมูล ACCESS ของคุณจะปรากฏที่นี่ คลิก "เลือกทั้งหมด" และไปยังขั้นตอนถัดไป
10. "DTS Import/Export Wizard" เห็นว่าเลือก "Run Now" แล้วคลิก "Next"
11. กด "เสร็จสิ้น" เพื่อดำเนินการต่อ
12. ในขั้นตอนนี้ คุณจะเห็นข้อมูลของคุณถูกนำเข้าไปยัง SQL2000 เมื่อคำว่า "XXX tables has been suitable import into the Database" ปรากฏขึ้น และมีเครื่องหมายถูกสีเขียวอยู่ด้านหน้าตารางทั้งหมด หมายความว่าข้อมูลทั้งหมดได้ถูกนำเข้าแล้ว นำเข้าสำเร็จแล้ว หากเกิดปัญหาระหว่างดำเนินการ หรือมีเครื่องหมาย * สีแดงอยู่หน้าตาราง แสดงว่านำเข้าตารางไม่สำเร็จ ในเวลานี้ คุณต้องกลับไปตรวจสอบว่าการดำเนินการของคุณถูกต้องหรือ
ไม่ . การปรับเปลี่ยนข้อมูล
1. เนื่องจากไม่มี "การกำหนดหมายเลขอัตโนมัติ" ใน SQL2000 ฟิลด์ที่คุณตั้งค่าด้วย "การกำหนดหมายเลขอัตโนมัติ" จะกลายเป็นฟิลด์ที่ไม่ว่างเปล่า ในกรณีนี้ คุณต้องแก้ไขฟิลด์เหล่านี้ด้วยตนเอง และเลือก "ใช่" สำหรับ "ทำเครื่องหมาย" เมล็ดคือ "1" การเพิ่มขึ้นคือ "1"
2. นอกจากนี้ หลังจากแปลง ACCESS2000 เป็น SQL2000 แล้ว ฟิลด์ที่มีแอตทริบิวต์เดิม "ใช่/ไม่ใช่" จะถูกแปลงเป็น "บิต" ที่ไม่ว่างเปล่า ในขณะนี้ คุณต้องแก้ไขเป็นแอตทริบิวต์ที่คุณต้องการ
3. นอกจากนี้ ทุกคนควรใส่ใจกับฟังก์ชันเข้าใจเวลาด้วย
4. ปัญหาสาขาที่เกี่ยวข้อง
1. เมื่อแปลงประเภทการกำหนดหมายเลขอัตโนมัติในฐานข้อมูล ACCESS นั้น sqlserver ไม่ได้ตั้งค่าเป็นประเภทการกำหนดหมายเลขอัตโนมัติ เราจำเป็นต้องเพิ่มข้อมูลประจำตัวให้กับคำสั่งการสร้าง SQL เพื่อระบุการกำหนดหมายเลขอัตโนมัติ!
2. ในระหว่างการแปลง SQLSERVER จะมีค่าเริ่มต้นเป็นประเภทวันที่และเวลาขนาดเล็กสำหรับฟิลด์ที่เกี่ยวข้องกับวันที่ วิธีที่ดีที่สุดคือเปลี่ยนเป็นประเภทวันที่และเวลา เนื่องจากประเภทวันที่และเวลามีช่วงที่ใหญ่กว่าประเภทวันที่และเวลาขนาดเล็ก ฉันพบสถานการณ์นี้ เมื่อใช้ประเภท datetime การแปลงล้มเหลว แต่เมื่อใช้ประเภท datetime การแปลงสำเร็จ
3. คำสั่ง SQL ที่ใช้ในการดำเนินการทั้งสองฐานข้อมูลไม่เหมือนกันทุกประการ ตัวอย่างเช่น เมื่อลบบันทึกในฐานข้อมูล ACCESS ให้ใช้: "delete*fromuserwhereid=10" แต่เมื่อลบฐานข้อมูล SQLSERVER ให้ใช้: "deleteuserwhereid= 10".
4. ฟังก์ชันวันที่จะแตกต่างกัน เมื่อประมวลผลฐานข้อมูล ACCESS สามารถใช้ฟังก์ชันเช่น date() และ time() ได้ อย่างไรก็ตาม เมื่อประมวลผลฐานข้อมูล SQLSERVER จะสามารถใช้ได้เฉพาะฟังก์ชัน เช่น datediff และ dateadd เท่านั้น แต่ไม่สามารถใช้วันที่ได้ () เวลา ( ) และฟังก์ชันอื่นๆ
5. เมื่อประมวลผลฐานข้อมูล ACCESS ฟังก์ชัน VB บางอย่าง เช่น ฟังก์ชัน cstr() สามารถนำมาใช้โดยตรงในคำสั่ง sql แต่เมื่อประมวลผลฐานข้อมูล SQLSERVER จะไม่สามารถใช้ฟังก์ชันเหล่านั้นได้
5. ปัญหาเกี่ยวกับคำสั่งที่เกี่ยวข้อง จำเป็นต้องเขียนฟิลด์เพิ่มอัตโนมัติใหม่ ฟิลด์การกำหนดหมายเลขอัตโนมัติที่มักใช้ในการเข้าถึงไม่ใช่ int ที่เพิ่มขึ้นโดยอัตโนมัติหลังจากนำเข้าไปยัง mssql จะต้องตั้งค่าด้วยตนเอง เปลี่ยน "ไม่" ของฟิลด์การกำหนดหมายเลขอัตโนมัติที่นำเข้าเป็น "ใช่" และ "เริ่มต้น" และ "จำนวนเงินที่เพิ่มขึ้น" ต่างก็เป็น "1" เพื่อให้กลายเป็นตัวเลขอัตโนมัติ
ค่าเริ่มต้นทั้งหมดจะหายไป ส่วนใหญ่เป็นประเภทตัวเลขและประเภทวันที่
ต้องเปลี่ยนทั้งหมด now(), time() และ date() เป็น getdate()
datediff('d',time1,time2) ทั้งหมดควรเปลี่ยนเป็น datediff(day,time1,time2)
datediff('ww',time1,time2) ทั้งหมดควรเปลี่ยนเป็น datediff(week,time1,time2)
datediff('d',time1,time2) ทั้งหมดควรเปลี่ยนเป็น datediff(day,time1,time2)
ใน mssqlserver มีคำสงวนมากมายที่ไม่สามารถเข้าถึงได้ เมื่อคุณนำเข้าข้อมูลไปยัง mssql ปัญหาจะเกิดขึ้น เมื่อนำเข้า mssql มันจะเพิ่ม "[ชื่อฟิลด์]" ลงในฟิลด์เหล่านี้โดยอัตโนมัติ (รวมถึงชื่อตารางในฐานข้อมูล) ดังนั้น คุณต้องแก้ไขสคริปต์ของคุณและเพิ่มชื่อฟิลด์ที่เกี่ยวข้อง (หรือชื่อตาราง) ชื่อฟิลด์เป็นคำสงวนที่ไม่ใช่ mssql
เมื่อใช้การเข้าถึงเพื่อใช้เวลา ใครๆ ก็ชอบใช้คำสั่ง SQL เช่น "select*fromaaaa Whiletime="&now()" อย่างไรก็ตาม ไม่มีฟังก์ชัน "now()" ใน mssql แต่ใช้ "getdate()" ดังนั้น , "now()" ในคำสั่ง sql ทั้งหมดจะต้องถูกแทนที่ด้วย "getdate()"
ฟังก์ชันวันที่จะแตกต่างกัน ในการประมวลผลฐานข้อมูล ACCESS สามารถใช้ฟังก์ชันเช่น date() และ time() ได้ แต่สำหรับ
ในการประมวลผลฐานข้อมูล SQLSERVER สามารถใช้ได้เฉพาะฟังก์ชัน เช่น datediff และ dateadd เท่านั้น แต่ไม่สามารถใช้ฟังก์ชัน เช่น date() และเวลา() ได้
ในระหว่างการแปลง SQLSERVER จะมีค่าเริ่มต้นเป็นประเภทวันที่เวลาขนาดเล็กสำหรับฟิลด์ที่เกี่ยวข้องกับวันที่ เราควรเปลี่ยนเป็นประเภทวันที่และเวลาจะดีกว่า