เชื่อมต่อกับ LocalDB ผ่าน SQLCMD ใน PowerShell


11

ฉันพยายามเข้าถึงเซิร์ฟเวอร์ "localdb \ MSSQLLocalDB" บนคอมพิวเตอร์ของฉันผ่าน PowerShell ด้วยยูทิลิตี้ SQLCMD ฉันใช้ PowerShell v5, .NET v5.0 และชื่อเซิร์ฟเวอร์คือ(localdb)\MSSQLLocalDBเมื่อฉันเชื่อมต่อกับมันใน Microsoft SQL Server Management Studio 2014

PS C:\> sqlcmd -S localdb\MSSQLLocalDBและPS C:\> sqlcmd -S .\localdb\MSSQLLocalDBทำให้เกิดข้อผิดพลาดนี้:

Sqlcmd: ข้อผิดพลาด: Microsoft ODBC Driver 11 สำหรับ SQL Server: อินเทอร์เฟซเครือข่ายเซิร์ฟเวอร์ SQL: ข้อผิดพลาดการค้นหาเซิร์ฟเวอร์ / อินสแตนซ์ที่ระบุ [xFFFFFFFF]

ฉันสอบถามชื่อเซิร์ฟเวอร์ใน Management Studio ด้วยSELECT @@ServerNameและใช้หลังจากนั้น-Sในคำสั่งด้านบนและได้รับข้อผิดพลาดเดียวกัน

PS C:\> sqlcmd -S localdb ให้ข้อผิดพลาดนี้:

Sqlcmd: ข้อผิดพลาด: Microsoft ODBC Driver 11 สำหรับ SQL Server: เนมไปป์ผู้ให้บริการ: ไม่สามารถเปิดการเชื่อมต่อกับ SQL Server [53]

หมายเหตุอื่น ๆ : ฉันสามารถเชื่อมต่อกับเซิร์ฟเวอร์และทำงานกับฐานข้อมูลชื่อtestdb01ในแอปคอนโซล C # ที่ใช้System.Data.SqlClientกับสตริงการเชื่อมต่อนี้:

"Data Source=(localdb)\\mssqllocaldb;Initial Catalog=testdb01;Integrated Security=SSPI;"

คำตอบ:


9

การใส่ชื่ออินสแตนซ์ไม่สำคัญ

คุณต้องลอง:

sqlcmd -S "(localdb)\MSSQLLocalDB" -d testdb01

ส่วน "localdb" จะต้องอยู่ในวงเล็บเนื่องจากเป็นไวยากรณ์พิเศษที่ชี้ไปที่ API เฉพาะของ SQL Server Express LocalDB ที่อนุญาตให้มีการเริ่มต้นอินสแตนซ์อัตโนมัติเมื่อมีการอ้างอิงในสตริงการเชื่อมต่อ ชื่ออินสแตนซ์ทั้งหมดจะต้องอยู่ในเครื่องหมายคำพูดคู่ บรรทัดคำสั่งที่แสดงด้านบนใช้ได้กับฉันอย่างน้อยนอก PowerShell


การรวม(localdb)ในวงเล็บดูเหมือนจะแยกเป็นคำสั่งและให้ข้อผิดพลาดต่อไปนี้: คำว่า 'localdb' ไม่ได้รับการยอมรับว่าเป็นชื่อของ cmdlet, ฟังก์ชั่น, ไฟล์สคริปต์หรือโปรแกรมที่ทำงานได้
jmk22

@ jmk22 -S "(localdb)\MSSQLLocalDB"แล้วลองใส่ชื่อเซิร์ฟเวอร์ทั้งหมดในราคาสองครั้ง: หากไม่ได้ผลเราสามารถลองหลีกเลี่ยงวงเล็บ แต่อย่างใด parens เหล่านั้นจำเป็นต้องมี
โซโลมอน Rutzky

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