Skip to content

SQL Memory:互動與視覺 ​

本頁只定義 History/Favorites/Usage 特有的互動;共用骨架、清單列與篩選行為分別見 視窗骨架、清單列及篩選。

工具選單與工具列的 History、Favorites 聚焦同一個 SQL Memory Tool Window; 殼層保存停駐位置,不另建預覽視窗或位置設定。

主從瀏覽 ​

  • History 與 Favorites 共用 Browser、SqlMemoryList、卡片、搜尋、連線篩選與選取流程; 分頁只決定查詢與可用操作。收合預覽保留選取,展開時才讀取目前項目。
  • 單擊或 ↑/↓ 只選取並預覽(多選模式的單擊見清單列);選取去彈跳後非同步讀全文,立即清除舊 SQL。 取消、選取識別與宿主世代阻擋過期回應;收合、隱藏、停用與 Dispose 都取消讀取。
  • 雙擊或卡片本身的 Enter 才開新 Query;操作按鈕的 Enter 只執行該動作。 Delete 發出刪除請求;右鍵先選取該列。選取永不開窗或執行 SQL。
  • 每頁 50 筆,捲到底可自動續頁,也保留手動按鈕。頁尾不參與選取,版面或資料增高不得觸發續頁。 重整可恢復仍在第一頁的選取;沒有選取時預覽第一筆但不搶焦點。
  • 卡片顯示名稱、狀態、連線、時間與單行 SQL;順序及窄版降級遵守清單列。 合併執行以中性「×N」標記;完整 SQL 只在 Detail 顯示。
  • 卡片、快捷選單與 Preview 共用同一組命令,順序是開新 Query、複製、加入收藏或編輯收藏、 版本歷史,最後才是刪除;刪除前一律一條分隔線,線跟著刪除鈕收起。不適用的命令收起。 Preview 工具列依序是命中導覽、同一組命令(開新 Query 是主要動作,複製讀已載入的全文), 顯示換行是靠右緣的開關(CreatePreviewToolbar,與 SQL Search 預覽同一份)。

Preview 使用共用 SQL viewer,支援著色、選取、Ctrl+C、全文複製與只影響顯示的換行。 有搜尋字時標出 SQL 裡每一處命中並配上一個/下一個命中,兩級、上限與捲動照 命中高亮。位置用清單那一輪的同一個比對器算;換搜尋字或選項會作廢清單並重選, 預覽跟著重算,沒有搜尋字時不畫、導覽收起。Favorites 只靠名稱或說明命中時 SQL 上沒有標記, 狀態列說明原因。 載入、空 SQL、內容已回收、停用與失敗都要清除舊內容並顯示狀態。 資料庫版本不相容或損毀時,整個主從區改顯示復原卡片;使用者確認後封存舊庫並重建, 也可開啟資料庫目錄。重建進度與結果走通知,狀態列只顯示備份檔名。

第一頁與 Preview 用共用狀態表面;續頁進度留在頁尾,不遮住已載入列。 列進退場以資料旗標觸發,容器重用不重播。Preview 摘要依序顯示檔名、狀態、次數、伺服器、 資料庫、時間;合併列顯示首次與最後執行。收藏頁籤每列都是收藏,清單與 Preview 都不畫狀態膠囊,也不推測來源狀態或時間。

多選、批次複製與批次刪除 ​

共用的多選互動見清單列;Delete 在模式中仍只作用在焦點列,批次刪除只從選取工具列進入, 不給快捷鍵:一個按鍵刪掉一整批太容易誤觸。

複製把 TSV 與 HTML 放進同一次剪貼簿,附標頭列,順序照清單而不是點選順序;不含 SQL 內文, 時間是本機的 yyyy-MM-dd HH:mm:ss,沒有連線的格子留空。History 是狀態、名稱、伺服器、 資料庫、時間、次數;Favorites 是名稱、伺服器、資料庫、更新時間。

全部符合而且還有沒載入的頁時,照目前條件以 keyset 在背景逐頁讀完才寫剪貼簿,進度與取消在 選取工具列上;已經全部載入就直接複製畫面上的列。上限 10000 筆(SqlMemoryBulk.Limit,與預設執行保留筆數同級), 超過時通知說明只複製了多少。讀的期間換了條件就作廢,剪貼簿被其他程式鎖住時重試後由通知回報。

批次刪除與單筆刪除共用確認、通知與儲存呼叫(SqlMemoryItemCommands、SqlMemoryDeletion)。「全部符合」 先讀完再確認,確認框上是這一次真的會動到的筆數,超過上限時說明只處理前 10000 筆。History 每 200 筆一個交易, 收藏逐筆比對版本、衝突的留在清單上;進度與取消在選取工具列,取消停在兩批之間、已刪的不還原。 結束一律清空勾選並重讀清單:刪掉的可能散在還沒載入的頁。

事件勾選
載入更多保留,新列不勾
重新整理保留仍在第一頁的 Id;看不到的勾會讓筆數對不上畫面
搜尋、篩選、分頁切換、宿主換世代清空
單筆刪除或移出篩選移出該 Id

篩選與工具列 ​

History 預設全部種類、七天、所有連線;狀態、期間、連線是同一列的三群。 Favorites 只保留伺服器與資料庫篩選。範圍列在上,依序是套用查詢視窗的連線、伺服器、資料庫、 狀態、期間;搜尋列在下貼著清單,Ctrl+F 聚焦,框裡是與 SQL Search 同一份的大小寫相同、 整個字(SqlMatchToggles),右緣只有重新整理,沒有排序。關掉重開只記得這兩顆 (SqlMemoryMatchState,與 SQL Search 分開記);沒有搜尋字時切換不重讀清單。

伺服器與資料庫都是多選;未選代表全部。只載入部分名稱時,「全選」只能選已載入項目, 必須明示仍有下一頁。動到伺服器即清空資料庫選取;套用查詢視窗的連線是取代而非追加 Server/Database,只改篩選、不切換 SSMS 連線,無連線時保留原篩選並提示(共用規則見 視窗骨架)。面板只列紀錄裡有的名稱,不另釘一段「查詢視窗」: 那一段讓同一個名稱有兩種身分,而套用按鈕已經是回到查詢視窗那一條的捷徑。

按鈕摘要只顯示單一名稱或數量,完整名單留在 Tooltip 與面板。名稱在開啟面板時才載入; 排序或續頁不得丟失已選項目,讀取失敗留在面板內。共用控制項與預設列的語意見篩選。

掃描預算提早結束時,頁尾顯示搜尋截至日期並提供「繼續搜尋」;本頁沒有命中也不能誤報沒有資料。 篩選或搜尋改變時清除續搜進度,完整語意見搜尋。

分頁列只放 History、Favorites、Usage 與跨分頁的設定。Usage 以 用量頁取代主從區,自己的狀態卡片負責重新整理。

收藏與開啟 ​

History 項目可加入收藏:有版本時引用不可變版本,尚未產生版本的 Recovery 項目才以目前全文建立。 查詢視窗快捷選單與工具選單也能加入收藏;有選取收選取,否則收整份查詢。此入口不寫 History, 不受擷取設定影響;SQL Memory 未啟用或編輯器空白時停用。

收藏可編輯或移除,History 可刪除;刪除與移除都要確認且取消為預設,移除收藏不刪 History。 成功後保留既有分頁並選取原位置下一筆;編輯後的收藏移到最上方,若不再符合篩選則移出。

效果在工具窗外的動作(複製、開新 Query、收藏、刪除、批次動作)與維護、清除、壓縮、備份、重建、回溯 都走通知:刪除後選取會移到下一筆,寫在工具窗的那一句對不上是哪一筆。工具窗的狀態列 只說明畫面為什麼是這樣(載入失敗、部分結果、停用、沒有可處理的項目),以及通知放不下的備份檔名。

新增與編輯共用 FavoriteEditorWindow,一次儲存名稱、連線標註、說明與 SQL;SQL 未改就引用原版本, 改動才建立新版本。未存變更時關閉需確認;提交中不得關閉,Conflict 或未知回應保留輸入且不重送。 版本歷史維持獨立對話框,見版本歷史。

開新 Query 永遠沿用目前 SSMS 連線,不採用歷史標註也不執行;只寫入新建且仍空白的編輯器, 失敗時仍可複製 SQL。本版不提供覆蓋目前 Query。 自動 WPF 渲染與 SSMS 實機驗收範圍見驗收。

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