在 SQL Server Management Studio 中使用 GitHub Copilot Chat 的體驗

SQL Server Management Studio(SSMS)中 GitHub Copilot 的聊天視窗,能強化 SSMS 中 AI 輔助的資料庫管理與開發功能。 它能幫助你在使用 SQL 資料庫時提高生產力和效率。

GitHub Copilot 在 SSMS 中產生的查詢,會在使用者的登入與權限上下文中執行。 GitHub Copilot 沒有獨立權限。 在 Ask 模式下,Copilot 使用分類系統判斷產生的查詢是否為唯讀,然後再執行。

這很重要

雖然這個系統會阻擋寫入操作,但它並不是安全邊界。 透過使用最小權限原則,在資料庫層強制執行存取控制:只SELECTEXECUTE授予使用者他們應該存取的特定物件所需的權限。 安全邊界是 SQL Server 的權限強制執行,而非 Copilot 的分類系統。

在本文中,您將學習如何在 SSMS 中使用 GitHub Copilot 聊天,這是 GitHub Copilot 提供、直接存在於 SSMS 中的完全整合 AI 聊天體驗。 它讓你能在不離開 SSMS 介面的情況下,獲得 Transact-SQL(T-SQL)支援,包括語法和特定情境的幫助。 使用聊天介面以提示的形式提交您的問題,並提供意圖以獲得更適合的答案範圍。

為什麼要在 SSMS 中使用 GitHub Copilot Chat?

GitHub Copilot Chat 提供 AI 協助,幫助你對 SQL 資料庫做出明智決策,並更快地撰寫更好的 T-SQL。 透過整合 SSMS,包含連線上下文與結構理解,GitHub Copilot Chat 能理解你正在處理的工作,並能協助完成包括:

  • T-SQL 幫助:

    • 獲得針對情境的程式碼建議與推薦。
    • 了解並記錄查詢的用途。
    • 尋求協助修正你查詢中的語法錯誤。
    • 重構查詢。
  • 資料庫管理:

    • 尋求協助管理設定、安全性等。
    • 配置並監控資料庫維護。
    • 實作新的 SQL 功能。
  • 資料庫開發:

    • 結構設計。
    • 資料型別選擇。
    • 索引建議。

先決條件

要在 SSMS 中使用 GitHub Copilot Chat,你需要 SSMS 22 或更新版本,具備 AI 協助工作負載,以及一個帶有 Copilot 存取權 的 GitHub 帳號。 否則,你可以在 SQL Server Management Studio 中免費使用 GitHub Copilot。

在 SSMS 中使用 Copilot Chat

用自然語言提出資料庫和 T-SQL 問題,GitHub Copilot Chat 會根據你的資料庫及其連結來回答。

你可以在兩個地方問 Copilot 這些問題:聊天視窗,或直接在你想修改的程式碼內聯,使用內嵌聊天。 如果你想修改或新增編輯器中開啟的 SQL 檔案,內嵌聊天視窗可能最適合。 使用聊天視窗來回答一般的 T-SQL 問題。

為了提高 Copilot Chat 中的對話結果,請學習如何使用 參考文件討論串 以及 斜線指令,以便在範圍化的上下文中獲得更好的答案。

在聊天視窗中詢問問題

SSMS 中 Copilot Chat 的聊天視窗讓你能提問並在聊天視窗中看到答案。 這通常是使用 Copilot 處理資料庫協助和一般 T-SQL 問題的首選方式。

  1. 打開查詢編輯器視窗並連接到你的資料庫。
  2. 在 SSMS 中,選擇 View>GitHub Copilot Chat
  3. 請使用聊天視窗中的範例起始提示開始探索Copilot Chat,或輸入提示並選擇 EnterSend來提交問題。
  4. 如果Copilot Chat提供你想使用的 T-SQL 建議,選擇 Apply 將程式碼套用到主動查詢編輯器,Copy code block複製建議,或Add to new file 將該程式碼建議插入新檔案。
    • 如果您要求協助瞭解程式碼,則無法使用 [插入新檔案] 選項。
  5. 如果您選取 [ 套用],程式碼建議會套用至差異檢視模式中的作用中編輯器。 您可以檢閱和完善建議的內容,並使用 Tab 鍵套用它,或使用 Alt+Delete 捨棄它。

在內嵌聊天檢視中詢問問題

SSMS 中 Copilot Chat 的內嵌聊天視圖讓你能直接在編輯器視窗中提問並看到程式碼內嵌的答案。 使用內嵌聊天功能,您不必在聊天視窗之間來回切換。 你可能會發現,在新增或更新目前開啟的 SQL 檔案時,透過行內聊天使用 Copilot 處理相關問題會比較容易。

  1. 在 SSMS 中,選擇 Alt+/,即可在編輯器中顯示 Copilot Chat 的內嵌聊天視窗。
  2. 在Ask Copilot文字框輸入你與 T-SQL 相關的問題,然後選擇 EnterSend來提問。
  3. Copilot Chat 的程式碼建議會出現在差異視圖中。 您可以檢閱和精簡建議的內容,並使用 Tab 將變更套用至程式碼,或使用 Alt+Delete 捨棄它。
  4. 您可以選取 [在 聊天視窗中檢視],將內嵌聊天討論串升級到聊天視窗。 將聊天升格到視窗可以保留對話的紀錄和上下文,你可以繼續在聊天視窗中。
  5. 選取 Esc 以 關閉內嵌聊天檢視。

備註

SSMS 中的 GitHub Copilot 查詢會依據使用者登入和權限的上下文執行,無論是透過聊天視窗還是內嵌聊天檢視執行。 SSMS 中 GitHub Copilot 沒有獨立權限。

建立獨立對話串

當你在聊天會話中提問和發送提示時,Copilot 會利用聊天提示和回覆的歷史紀錄。 先前的提示和回應提供了您目前聊天提示的上下文。 你可以提出後續問題或澄清之前的問題,而不必重複上下文。 例如,你可以問 What is the compatibility mode for this database?What are the differences between compatibility mode 140 and 170?Do all users need to be out of the system when changing compatibility mode?、 以及更多問題。

使用討論串來為新任務開始對話。 在聊天視窗中選取 [建立新執行緒 ] 或 [Ctrl+N ] 以啟動新執行緒。 當您想要移動到不同的主題並避免先前的上下文和歷史記錄時,新線程非常有用。 使用線程讓對話專注於手頭的任務,並保持上下文清晰,以便答案基於相關歷史記錄。

切換聊天串

您可以在多個正在進行的線程之間切換,為您的問題提供正確的歷史背景。 在聊天窗口中,按 Ctrl+Page Down 切換到下一個主題,或按 Ctrl+Page Up 切換到上一個主題。 Ctrl+Shift+T 展開執行緒下拉式清單。

保留嵌入式聊天

若要保留內嵌聊天的歷史記錄,請將其升級到聊天視窗。 選取 [ 在聊天視窗中檢視 ] 以維護交談的記錄和內容,然後在聊天視窗中繼續。

刪除聊天對話串

若要重新開始新的聊天會話並捨棄當前上下文,請選擇 刪除討論串。 刪除那些已經不再相關或沒有達到預期結果的討論串。

預覽 Markdown 內容

你可以直接在 Markdown 編輯器中預覽由 Copilot Chat 產生的任何 Markdown 內容。 當 Copilot Chat 產生 Markdown 內容時,請在聊天視窗右上角選擇預覽按鈕,即可看到渲染的預覽畫面。 你可以根據需要編輯並儲存 Markdown 內容。 這個功能對於想要快速視覺化並處理 Markdown 檔案而不必手動複製貼上非常有幫助。

生成美人魚圖

Copilot Chat 可以產生 Mermaid 圖解,包括實體關係、流程圖、甘特圖等。 接著你可以直接在編輯器中視覺化複雜的關係和工作流程。

例如,你可以使用以下一個或多個提示:

  • Visualize the relationships between tables in this database as a Mermaid diagram
  • Visualize the relationships between tables in the Orders schema of this database as a Mermaid diagram
  • Create a Mermaid flowchart for the steps to change the compatibility mode

Copilot 會利用你的主動查詢編輯器和你新增的任何參考資料來收集上下文,然後在聊天視窗中回傳 Mermaid 語法。 選擇 預覽 以開啟新的 Markdown 檔案並查看該圖表。 你可以儲存或分享 Markdown 或渲染圖表,供未來使用。

小提示

你可以使用 Markdown 預覽控制 切換預覽模式,並放大複雜的美人魚圖解。

自訂 Copilot Chat

你可以在 SSMS 中根據你的工作流程和需求自訂 Copilot。

  • 管理參考文獻的上下文:使用 + 按鈕附加更多上下文,例如 .sql 檔案或 .sqlplan 檔案。 欲了解更多資訊,請參閱Add context for GitHub Copilot in SQL Server Management Studio

  • 存取不同模型:在提示視窗中使用模型選擇器選擇 AI 模型,或將自己的模型帶入 Copilot。 探索不同情境的模型,無論是回答快速問題、撰寫文件,或是產生程式碼編輯。 欲了解更多資訊,請參閱SQL Server Management Studio中的GitHub Copilot AI 模型。