SQL Management Studio (รุ่นก่อนหน้า 2016)
น่าเสียดายที่มีข้อแม้บางประการที่ทำให้การใช้แอปพลิเคชันแสดงเจตนาใน SQL Management Studio ค่อนข้างเจ็บปวด:
ในการเชื่อมต่อด้วยตนเองด้วยเจตนาแบบอ่านอย่างเดียวหลังจากเปิดกล่องโต้ตอบเชื่อมต่อไปยังเซิร์ฟเวอร์จาก Object Explorer ผู้ใช้จะต้องจำไว้ว่า:
- คลิกตัวเลือก >>
- ไปที่แท็บพารามิเตอร์การเชื่อมต่อเพิ่มเติม
- ป้อนพารามิเตอร์เพิ่มเติมเป็น ApplicationIntent = ReadOnly;
- (หมายเหตุ: ผู้ใช้จะต้องไม่คลิกปุ่มตัวเลือก <<หลังจากป้อนพารามิเตอร์การเชื่อมต่อเพิ่มเติมมิฉะนั้นพารามิเตอร์จะหายไป)
- คลิกConnect
- เรียกใช้หน้าต่างคิวรีเสมอโดยการคลิกขวาบนฐานข้อมูลที่ต้องการในมุมมองObject ExplorerและเลือกNew Queryเพื่อหลีกเลี่ยงการทำงานใน # 3 caveat ด้านล่าง
คำเตือนที่ใช้มีดังนี้:
- แม้ว่าคุณสามารถให้ SQL Management Studio เชื่อมต่อกับ Read Only Intent ได้ แต่จะไม่เก็บพารามิเตอร์การเชื่อมต่อเพิ่มเติมเมื่อมีการเพิ่มการเชื่อมต่อไปยังเซิร์ฟเวอร์ที่ลงทะเบียน
- พฤติกรรมเมื่อมือแก้ไขเซิร์ฟเวอร์ที่ลงทะเบียนในเครื่องในไฟล์ RegSrvr.xml เพื่อเพิ่ม Application Intent นั้นมีความไม่สอดคล้องกันอย่างมากและจะถูกเขียนทับเมื่อใดก็ตามที่มีการเปลี่ยนแปลงผ่าน GUI ทำให้การแก้ไขปัญหานี้ไม่น่าเชื่อถือ
- ต้องเลือกฐานข้อมูล Always On ก่อนที่จะเปิดหน้าต่างแบบสอบถาม มิฉะนั้นการเชื่อมต่อจะถูกส่งไปยังเซิร์ฟเวอร์หลัก หากคุณพยายามเลือกฐานข้อมูลโดยใช้ดรอปดาวน์ของหน้าต่างแบบสอบถามหลังจากหน้าต่างคิวรีถูกเปิดไปยังฐานข้อมูลที่ไม่ได้เปิดทุกครั้งคุณจะได้รับกล่องโต้ตอบข้อผิดพลาด หากคุณพยายามที่จะเปลี่ยนฐานข้อมูลเป็นฐานข้อมูล Always On ด้วยคำสั่ง USE หลังจากหน้าต่างคิวรีถูกเปิดไปยังฐานข้อมูล Non-Always On ผลลัพธ์จะมีลักษณะเช่นนี้เมื่อคุณพยายามเรียกใช้คิวรี SQL
Msg 979, Level 14, State 1, Line 1
The target database ('AlwaysOnDatabase') is in an availability group
and currently does not allow read only connections. For more
information about application intent, see SQL Server Books Online.
SQL Management Studio (เวอร์ชั่น 2016 หรือใหม่กว่า)
SQL Server Management Studio 2016 หรือสูงกว่าสามารถเชื่อมต่อกับ Read Only Application Intent (ใช้ 6 ขั้นตอนเดียวกับเวอร์ชั่นก่อนหน้านี้) และจะเก็บพารามิเตอร์การเชื่อมต่อเพิ่มเติม ยังมีคำเตือนอยู่บ้าง:
- มุมมอง Object Explorer จะไม่ระบุตารางหรือวัตถุอื่นใดในฐานข้อมูล AlwaysOn ความพยายามในการขยายผลลัพธ์ในข้อความปฏิเสธการเข้าถึง
- คุณไม่สามารถเปิดการเชื่อมต่อแบบอ่านอย่างเดียวและไม่ใช่แบบอ่านอย่างเดียวกับผู้ฟังรายเดียวกันในเวลาเดียวกัน
- Intellisense สำหรับชื่อวัตถุในฐานข้อมูลไม่ทำงาน (ผิดปกติพอวัตถุได้รับการระบุในการออกแบบ Query ที่คุณสามารถเปิดใช้โดยใช้Design Query ใน Editor ...จากเมนูคลิกขวา)
- Caveat 3 จาก caveats รุ่นก่อนยังคงมีผลบังคับใช้
ผลิตภัณฑ์ของบุคคลที่สาม
LinqPadเก็บสตริงการเชื่อมต่อทั้งหมดรวมถึง Application Intent และฐานข้อมูลเมื่อคุณบันทึกการเชื่อมต่อดังนั้นจึงอาจเป็นตัวเลือกที่ใช้การได้สำหรับการดำเนินการแบบสอบถามแบบอ่านอย่างเดียวกับฐานข้อมูล Always On เสมอ