AI 時代,把「SQL 該怎麼下」丟給 Github Copilot 想也是很合理滴
| | | 4 | |
Github Copilot 推出 Agent Mode (代理模式)已大半年,借助內建工具(Built-in Tools)或 MCP Server,Copilot 可無限擴充能力,查文件庫、搜尋 Internet、跑外部程式、上傳下載檔案、串接第三方系統,甚至修改開發及測試環境,只要你想得到,都可以被實現。(提醒:應用時需留意 AI 幻覺及出錯風險,應謹慎授權以免引爆災難)
這些年我早已脫離新技術的先鋒部隊,新東西出來好一陣子才會跟上,直到這陣子我才開始試玩 Agent Mode。而講到 Agent Mode,我心中有個夢幻應用場景,想 SQL 跟敲語法是件煩人事,若能交給 AI 做,最後再由人來確認跟微調,那就太美妙了。
傳統的 LLM 聊天模,你很難把 SQL Schema、查詢結果一股腦塞進 Prompt 叫 AI 想,但 Agent Mode 允許 LLM 主動出擊,自己查資料庫再依據結果修正 SQL 語法,不必我們辛苦準備完整 Prompt,全自動解決。
小試了一下,我還真用 VSCode + Github Copilot 配合現成擴充套件實現了這個夢想,真是 Amazing 啊~ 這篇是我的筆記。
用 MSSQL LocalDB 跑 Northwind 北風資料庫當對象進行實際操演。
首先,在 VSCode 安裝 SQL Server (mssql)(MSSQL extension for Visual Studio Code) 擴充套件。

安裝後,點左側圖示[1]開啟介面,按 + [2]新增連線,指定 Profile 名稱、主機名稱、帳密、資料庫名稱等連線資訊[3]按【Connect】[4],右側視窗便可看到資料庫內容[5],再來可開啟 Query 視窗下 SQL 操作。

這裡有個小問題是,我的 VSCode 顯示語系設成英文,但 MSSQL 擴充套件介面硬要顯示中文,看起來很不習慣。查到這是個 Issue,解法是勾選 Mssql: Apply Localization 設定修正:

MSSQL 擴充套件用起來十分直覺,開個 Query 視窗,下 SQL 按 Ctrl-Shift-E 執行,下方 QUERY RESULTS 視窗看結果,應該不用學就能上手。(完整功能可參考官方說明)

下了簡單的 SELECT * FROM Employees,在 Copilot 視窗發問 依年齡為 Employee 分群 結果卻讓人小失望,AI 只依據常識回答,並沒有深入了解我的 Employee 資料表結構提供解答。
點一下 Agent Mode 下方工具列的小扳手圖示,確認 SQL Server (mssql) 已在工具清單中,但沒被調用。

照理來說,Agent Mode 會自行依據當下情境判斷要調用什麼工具,調用工具與否跟使用的模型 (GPT-4.1、Claude Sonnet 4...) 也有關係,換個提示 依年齡為 Employee 分群,請依據 SQL 資料表結構進行分析再改用 Sonnet 4,結果就不同了:

Copilot 開始嘗試呼叫 MSSQL 擴充套件提供的功能,像是列舉現存連線、執行查詢取回結果... 等等,Copilot 動作執行前會徵求你的同意(但你也可以設定 Allow in this session、Allow in this workspace、Allow always,之後不用問直接跑),按 See more 可檢視它要執行的內容,做為該不該放行的判。

最後,Copilot 直接查完資料庫給我一份員工年齡統計。結果令人噴飯! 北風公司最年輕的員工 59 歲,最年長者高壽 88,Copilot 很委婉地說:這是一個「經驗豐富」的團隊。
(註:北風資料庫是 1994 年 Access 附帶的範例,說來這份統計晚做了 30 年啊,遙想當年 Anne Dodsworth 才 29 歲,現在都做阿媽了~)

當然也可以請 Copilot 提供統計用的 SQL 語法:

如此便可套用在我們的程式或加以變化應用:

又打開了一扇通往新世界的大門,酷~
This article demonstrates using GitHub Copilot Agent Mode in VSCode to automate SQL querying with AI, enhancing productivity by letting Copilot handle database interaction and SQL generation.
Comments
# by Joker
我有做一個小玩具,聲控讓他自己去組織跟去撈資料出來蠻有趣的。
# by anumis
不知道能不能用我自己的付費 gemini
# by Jeffrey
to anumis, 可以的,https://www.youtube.com/watch?v=4qPG91qm0cw
# by Syana
黑大試試在copilot用@mssql 會帶您進入另一個次元