ไม่สามารถเปิดฐานข้อมูลได้เนื่องจากเป็นเวอร์ชัน 782 เซิร์ฟเวอร์นี้รองรับเวอร์ชัน 706 และเวอร์ชันก่อนหน้า ไม่รองรับเส้นทางการดาวน์เกรด


84

ฉันได้สร้างฐานข้อมูลตัวอย่างโดยใช้ SQL Server 2014 Express และเพิ่มลงในโซลูชัน Windows Form ของฉัน เมื่อดับเบิลคลิกเพื่อเปิดฉันได้รับข้อผิดพลาดนี้

ไม่สามารถเปิดฐานข้อมูลได้เนื่องจากเป็นเวอร์ชัน 782 เซิร์ฟเวอร์นี้รองรับเวอร์ชัน 706 และเวอร์ชันก่อนหน้า ไม่รองรับเส้นทางการดาวน์เกรด

ฉันใช้ Visual Studio 2013 ฉันไม่เข้าใจจริงๆว่าฉันกำลังใช้ผลิตภัณฑ์ Microsoft สองเวอร์ชันล่าสุดและไม่สามารถใช้ร่วมกันได้ ฉันพลาดอะไรไปรึเปล่า? ฉันจะเปิดฐานข้อมูลนี้ได้อย่างไร?

ใส่คำอธิบายภาพที่นี่


2
คุณต้องชี้ Visual Studio ที่อินสแตนซ์ SQL Server 2014 ของคุณ ไม่ใช่ว่าทั้งสองเข้ากันไม่ได้นั่นคือ Visual Studio กำลังใช้อินสแตนซ์ 2012 โดยค่าเริ่มต้นและไม่รองรับฐานข้อมูลจากปี 2014 เหตุผลที่ใช้ 2012 เป็นค่าเริ่มต้น: SQL Server 2014ไม่มีอยู่เมื่อ Visual Studio 2013ได้รับการปล่อยตัว
Aaron Bertrand

@AaronBertrand ขอบคุณ ฉันจะชี้ VS ที่ SQL Server 2014 ของฉันได้อย่างไรมีลิงค์ที่จะแนะนำหรือไม่?
Omer K

5
ได้เลยแค่หยุดชี้ Visual Studio (และแอปพลิเคชันของคุณ) ไปที่ไฟล์ (โดยใช้AttachDBFileName) สมมติว่าฐานข้อมูลที่แนบมาแล้วในท้องถิ่นของคุณ.\SQLEXPRESSตัวอย่างเช่นเพียงแค่เปลี่ยนสตริงการเชื่อมต่อไปยังจุดไปยังเซิร์ฟเวอร์ที่ ( Data Source=.\SQLEXPRESS;Initial Catalog=OMERDENEME;...) และหยุดใช้ AttachDBFileName
Aaron Bertrand

คำตอบ:


141

ลองเปลี่ยนTools> Options> Database Tools> >Data ConnectionsSQL Server Instance Name

ค่าเริ่มต้นสำหรับ VS2013 (LocalDB)\v11.0คือ

(LocalDB)\MSSQLLocalDBตัวอย่างเช่นการเปลี่ยนไปใช้งานได้ - ไม่มีข้อผิดพลาดเวอร์ชัน 782 อีกต่อไป


2
ผมมีปัญหาที่คล้ายกันกับ Visual Studio 2013 Express สำหรับเว็บและ Entity Framework 6. EF สร้างไฟล์ MDF โดยอัตโนมัติ แต่ฉันไม่สามารถเชื่อมต่อจาก VS (LocalDB)\v11.0เมื่อใช้ การเปลี่ยนชื่อเซิร์ฟเวอร์เพื่อ(LocalDB)\MSSQLLocalDBทำให้ข้อผิดพลาดเกี่ยวกับเวอร์ชัน # หายไป
wrschneider

3
ฉันต้องเปลี่ยนสตริงการเชื่อมต่อในไฟล์ web.config เป็น (LocalDB) \ MSSQLLocalDB
Roger Harvest

11
ใน VS Studio 2015 ค่าเริ่มต้นคือ (LocalDB) \ MSSQLLocalDB ดังนั้นสิ่งนี้ไม่ได้ช่วยในกรณีนี้
ประโยชน์บี

2
ฉันต้องรีสตาร์ท Visual Studio หลังจากเปลี่ยนการตั้งค่าที่กล่าวถึงข้างต้น
Manoj Attal

1
@ Kun-yaoWang ความคิดเห็นข้างต้นที่กล่าวถึงโดย benefitBee ทำงานให้ฉันและฉันใช้ VS 2015
Manoj Attal

10

ลองเปลี่ยนระดับความเข้ากันได้สำหรับฉัน

ตรวจสอบว่าอยู่ในระดับใด

USE VJ_DATABASE;
GO
SELECT compatibility_level
FROM sys.databases WHERE name = 'VJ_DATABASE';
GO

จากนั้นทำให้เข้ากันได้กับเวอร์ชันเก่า

ALTER DATABASE VJ_DATABASE
SET COMPATIBILITY_LEVEL = 110;   
GO
  • 100 = Sql Server 2008
  • 110 = เซิร์ฟเวอร์ Sql 2012
  • 120 = Sql เซิร์ฟเวอร์ 2014

ตามค่าเริ่มต้น Sql Server 2014 จะเปลี่ยนความเข้ากันได้ของเวอร์ชัน db เป็นเฉพาะ 2014 โดยใช้สิ่งที่@@ versionคุณควรจะบอกได้ว่า Sql Server คือเวอร์ชันใด

จากนั้นเรียกใช้คำสั่งด้านบนเพื่อเปลี่ยนเวอร์ชันที่คุณมี

ขั้นตอนเพิ่มเติม: ตรวจสอบให้แน่ใจว่าคุณดูความสามารถในการเข้าถึงของฐานข้อมูลไม่ได้ถูกรีเซ็ตให้ทำสิ่งนี้โดยคลิกขวาที่คุณสมบัติของโฟลเดอร์และฐานข้อมูล (ตรวจสอบให้แน่ใจว่าคุณมีสิทธิ์เพื่อที่คุณจะได้ไม่ถูกปฏิเสธการเข้าถึง)


2

สำหรับฉันการใช้โซลูชันที่จัดทำโดยcodedomไม่ได้ผล ที่นี่เราสามารถเปลี่ยนเวอร์ชันที่เข้ากันได้ของการออกจากฐานข้อมูลเท่านั้น

แต่ปัญหาที่แท้จริงอยู่ที่เวอร์ชันฐานข้อมูลภายในซึ่งไม่ตรงกันเนื่องจากการเปลี่ยนแปลงในรูปแบบการจัดเก็บ

ดูรายละเอียดเพิ่มเติมเกี่ยวกับเวอร์ชันของ SQL Server และเวอร์ชันฐานข้อมูลภายในและระดับความเข้ากันได้ของ Db ที่นี่ ดังนั้นจึงเป็นการดีหากคุณสร้างฐานข้อมูลโดยใช้เวอร์ชันSQL Server 2012 Expressหรือต่ำกว่า หรือเริ่มใช้ Visual Studio 2015 Preview


2

วิธีนี้ช่วยแก้ปัญหาของฉัน: (จาก: https://msdn.microsoft.com/en-us/library/ms239722.aspx )

ในการแนบไฟล์ฐานข้อมูลอย่างถาวร (.mdf) จากโหนด Data Connections

  1. เปิดเมนูทางลัดสำหรับการเชื่อมต่อข้อมูลและเลือกเพิ่มการเชื่อมต่อใหม่

    เพิ่มการเชื่อมต่อกล่องโต้ตอบปรากฏขึ้น

  2. เลือกปุ่มเปลี่ยน

    เปลี่ยนแหล่งข้อมูลกล่องโต้ตอบปรากฏขึ้น

  3. เลือกMicrosoft SQL Serverและเลือกปุ่มตกลง

    เพิ่มการเชื่อมต่อปรากฏขึ้นอีกครั้งกล่องโต้ตอบกับMicrosoft SQL Server (SqlClient)ปรากฏในข้อมูลแหล่งที่มาของกล่องข้อความ

  4. ในกล่องชื่อเซิร์ฟเวอร์พิมพ์หรือเรียกดูเส้นทางไปยังอินสแตนซ์ภายในของ SQL Server คุณสามารถพิมพ์ดังต่อไปนี้:

    • "." สำหรับอินสแตนซ์เริ่มต้นบนคอมพิวเตอร์ของคุณ
    • "(LocalDB) \ v11.0" สำหรับอินสแตนซ์เริ่มต้นของ SQL Server Express LocalDB
    • ". \ SQLEXPRESS" สำหรับอินสแตนซ์เริ่มต้นของ SQL Server Express

    สำหรับข้อมูลเกี่ยวกับ SQL Server Express LocalDB และ SQL Server Express ดูภาพรวมข้อมูลภายในเครื่อง

  5. เลือกใช้ Windows รับรองความถูกต้องหรือใช้การตรวจสอบของ SQL Server

  6. เลือกแนบไฟล์ฐานข้อมูล , เรียกดูและเปิดไฟล์ที่มีอยู่ .mdf

  7. เลือกปุ่มตกลง

    ฐานข้อมูลใหม่ปรากฏใน Server Explorer มันจะยังคงเชื่อมต่อกับ SQL Server จนกว่าคุณจะถอดออกอย่างชัดเจน


1
วิธีนี้ใช้ได้ผลสำหรับฉัน ฉันเปลี่ยนการตั้งค่าการเชื่อมต่อเริ่มต้น Vs2012 ใน tool-option-database tools-> data connection -> sql server name = (LocalDB) \ MSSQLLocalDB จากนั้นทำตามขั้นตอนข้างต้น และในขั้นตอนที่ 4 ฉันป้อนชื่ออินสแตนซ์ ny sql 2014 เป็น (LocalDB) \ MSSQLLocalDB และทุกอย่างเรียบร้อยดี ขอบคุณครับ
abdul hameed

1

อีกวิธีหนึ่งคือการย้ายฐานข้อมูลไปที่เช่น 2012 เมื่อคุณ "ส่งออก" ฐานข้อมูลจากเช่น Sql Server manager 2014 ซึ่งทำได้ในเมนู Tasks-> สร้างสคริปต์เมื่อคลิกขวาที่ DB เพียงทำตามคำแนะนำนี้:

https://www.mssqltips.com/sqlservertip/2810/how-to-migrate-a-sql-server-database-to-a-lower-version/

สร้างสคริปต์ที่มีทุกอย่างจากนั้นในตัวจัดการเซิร์ฟเวอร์ SQL ของคุณเช่น 2012 เรียกใช้สคริปต์ตามที่ระบุในคำสั่ง ฉันทำการทดสอบด้วยความสำเร็จ


0

ฉันใช้ VS 2017 โดยค่าเริ่มต้นชื่ออินสแตนซ์เซิร์ฟเวอร์ SQL คือ (LocalDB) \ MSSQLLocalDB อย่างไรก็ตามการลดระดับความเข้ากันได้ของฐานข้อมูลเป็น 110 ตามคำตอบของ @ user3390927 ฉันสามารถแนบไฟล์ฐานข้อมูลใน VS โดยเลือกชื่อเซิร์ฟเวอร์เป็น "localhost \ SQLExpress"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.