Skip to content

設定 ​

本頁包含設定頁的分類、預設值與刻意不做成設定的東西;變更 schema 先讀設定結構。

設定全部由 SSMS 22 的 Unified Settings 提供,沒有自訂設定檔。 按 Ctrl+,,或從 工具 → SqlAssist → 設定… 直接跳到 SqlAssist 分類。 改完立即生效,不必重開查詢視窗,並跟著 SSMS 的設定漫遊同步。

區塊選項見區塊配對,「通知與背景工作」一整頁見通知呈現與驗證, 其餘如下:

分類設定預設
一般啟用 SqlAssisttrue
輸入時把 T-SQL 關鍵字轉成大寫true
自動補上成對的括號與引號true
啟動時檢查有沒有新版本true
播放介面動畫true
不受 Windows 動畫設定影響true
介面語言auto
建議清單輸入時自動彈出建議清單true
只使用 SqlAssist 的建議清單true
輸入幾個字元後才彈出清單1
在建議清單上方顯示分類篩選列true
列出程式碼片段(內建與自訂項目)true
列出資料庫物件與欄位true
插入與展開插入物件時補上結構描述名稱true
插入物件時加上方括號false
按 Tab 把 SELECT * 展開成欄位清單true
SELECT * 展開後的欄位排版oneLineWhenShort
在 ALTER 之後展開完整定義true
在 INSERT INTO 之後展開完整的欄位與 VALUEStrue
在 MERGE INTO 之後展開完整的比對鍵與動作子句true
在 EXEC 之後展開完整的參數清單true
EXEC 展開時包含選擇性參數true
選取自訂函式後補上括號true
括號裡填入引數預留值false
物件結構滑鼠停留時顯示物件結構true
滑鼠停留時顯示內建名稱的說明true
輸入函式引數時保持參數提示true
建議清單的結構預覽何時展開delay
自動展開前的停留毫秒數220
預覽視窗的字級14
產生指令碼的風格fidelity
指令碼包含資料行說明true
指令碼附上結構健檢的發現false
指令碼附上來源檔頭false
SQL Memory啟用 SQL Memorytrue
擷取:執行過的查詢true
擷取:尚未執行的草稿true
擷取:未存檔內容(當機還原)true
草稿:停止輸入幾秒後記下5
草稿:最密幾分鐘留一個版本10
保留:草稿天數30
保留:執行紀錄天數180
保留:無人使用的未存檔內容天數7
上限:執行紀錄筆數10000
上限:每個查詢視窗的自動版本數50
上限:每個收藏的編輯版本數20
儲存:容量上限mb512
儲存:背景整理間隔60
診斷寫入詳細診斷紀錄false

moniker 一律是 sqlAssist.<分類>.<設定>,例如 sqlAssist.suggestions.triggerAfterCharacters。「通知與背景工作」那一頁是 sqlAssist.notifications.*,其中十二個種類開關不寫成 moniker 常數與屬性,改由 NotificationKindToggle.All 那張表驅動,新增一個種類只動註冊檔與那張表。 註冊檔在 src/SqlAssist.Ssms22/SqlAssist.registration.json, 它是設定清單的唯一權威來源;四處對應與守門測試見設定結構。

「啟用 SqlAssist」是總開關,關掉之後其他分類的功能全部停止運作,但設定頁上不會跟著變灰—— 原因見設定條件式。「插入與展開」那幾種另外 還需要「建議清單」開著——它們發生在提交建議時,同樣不會變灰。

「播放介面動畫」管全套件自製介面(通知、預覽淡入、SQL Memory 載入與停駐),各表面只問 SqlAssistChrome.MotionEnabled,不自行讀 Windows 偏好;高對比一律不播。

「介面語言」管 SqlAssist 自製的一切文字,auto 依 SSMS 介面語言挑(中文用繁中,其餘英文), 改了立即生效;設定頁與擴充功能清單不歸它管,固定跟隨 SSMS。各表面怎麼換見在地化。

「SQL Memory」整頁由「啟用 SQL Memory」管,關掉時連背景整理都不跑。它預設開啟——空的 SQL Memory 沒有人會去打開,功能的價值在它已經有資料;代價是不能安靜地開始記錄,所以 第一次真正擷取時會送一則通知說明資料在哪裡、怎麼關掉。標題用前綴分群(擷取/草稿/保留/ 上限/儲存),設定的 key 不隨標題改名——那是使用者資料的鍵。容量壓力下的保留分級不是設定, 取捨與接線見設定與擷取。

指令碼那四項同時管 F12 與預覽的指令碼分頁。其餘四十幾個開關不進設定頁, 理由見指令碼產生。

「插入物件時加上方括號」管的是資料庫物件的名稱。暫存資料表(#Loan)與資料表變數 (@rows)不在它的管轄內,開著也不會被包起來:[#Loan] 雖然合法卻不是任何人會手寫的 樣子,而 FROM [@rows] 會指到一張叫 @rows 的資料表。規則只有一份,在 Core/Parsing/SqlIdentifier.IsScriptScoped。寫在欄位前面的限定字反過來一定要包, 見插入文字。

五件刻意不是設定的東西 ​

  • 清單引擎:固定使用平台原生管線,舊的自製 WPF 清單已移除。
  • 展開萬用字元的行寬:固定 120 個字元。排法本身是設定,這個分界點不是—— 感覺得到的是「一行還是好幾行」,落在 118 還是 124 沒有人會有意見。
  • 清單最多顯示筆數:模糊比對後的截斷上限固定 300。效能保險而不是偏好—— 清單本來就要捲動,再多打一個字排名也整個重算。
  • 預覽視窗的位置與寬高:固定擺在錨點上下、延伸到編輯器右側;要放在別處就釘住後拖過去, 要跨分頁留著就移到工具窗。 以前可以改成貼在清單側邊,但一百多欄的表在側邊只能橫向捲,退回上下時兩組尺寸還互相 污染,已移除。寬高是拖曳握把記下的視窗狀態而不是偏好,存 VS 的 WritableSettingsStore (SqlAssist\Preview):放進 Unified Settings 等於每放開一次滑鼠就提交一次設定變更並 廣播通知。記法與復原見預覽視窗。
  • SQL Search 的比對方式:比對位置、大小寫與全字跨工作階段記得住,但走同一個狀態存放區 而不是設定頁——它們是工具列上隨手切的狀態,每按一下提交一次設定變更並不合理。 伺服器、資料庫與種類連記都不記,理由見SQL Search。

設定頁上的按鈕、工具 → SqlAssist 選單與「關於與診斷」見設定入口。

以 Apache-2.0 授權條款發布 · 專為 SSMS 22 設計