SQL 依日期分組取每日最早/最晚記錄差值
需求:資料表含 number (流水號) 與 date (日期時間),求每日最早與最晚記錄的 number 差值。 測試資料 CREATE TABLE #d
SQL Server 清除交易日誌 (LDF 過大) 完整方案
資料庫長期未維護、完整復原模式下未備份日誌,導致 .ldf 檔案暴增佔滿磁碟。本文提供兩種清除方案:標準 DBCC SHRINKFILE + BACKUP LO
SQL Server datetime 與 smalldatetime 深度解析:儲存結構、精度陷阱與查詢最佳實務
日期時間型別是資料庫開發最常用也最易踩坑的型別。本文深度解析 datetime 與 smalldatetime 的內部儲存結構、精度差異、隱性轉換行為、日期範圍
SQL Server 取得漢字拼音聲母函數:排序、檢索實用工具
中文資料排序、首字母檢索、拼音索引建立常需將漢字轉為拼音聲母。本文提供一個純 T-SQL 純量函數 fGetPy,無需外部資料表、無需 CLR,透過 Unico
SQL Server 多條件動態篩選:使用暫存表疊加刪除法避免動態 SQL 複雜度
問題情境 預存程序接收多個選擇性參數(`@a, @b, @c...`),每個參數對應不同的篩選邏輯,需根據傳入參數組合動態產生結果集。傳統做法:`IF @a I
SQL Server 資料庫效能調優:重建資料庫整理碎片實戰紀錄
資料庫長期運行後,資料頁分裂、索引碎片、統計資料過舊會導致查詢效能下降。本文記錄一個透過「腳本重建 + DTS 匯入 + 改名切換」方式重整資料庫的實戰案例,並
SQL Server DBCC 資料庫修復命令全攻略:CHECKDB、CHECKTABLE、重建日誌
資料庫損壞是 DBA 最惡夢的場景。SQL Server 提供 DBCC 系列命令進行一致性檢查與修復。本文系統整理 DBCC CHECKDB、CHECKTAB
SQL Server 重複主鍵資料清除完整指南:偵測、刪除與預防
主鍵重複違反實體完整性,會導致唯一索引建立失敗、資料品質受損。本文提供從偵測到徹底清除的標準流程,涵蓋少量與大量重複資料的不同策略,並說明保留資料完整性的關鍵原
UNION 與 UNION ALL 完整比較:去重與效能的取捨
合併多個查詢結果集是常見需求,UNION 與 UNION ALL 是兩大核心運算子。本文詳細比較兩者差異、排序寫法、分頁應用,並提供 SQL Server 與
sp_executesql 參數化動態 SQL 完整範例:避免注入與提升計畫重用
sp_executesql 是 SQL Server 執行參數化動態 SQL 的核心系統預存程序,相較 EXEC(SQL 字串),它支援參數輸入輸出、強型別、執
SQL Server 貨幣金額轉英文文字函數:完整可用版
財務系統、發票列印、支票套印常需將數字金額轉為英文文字(如 1234.56 → ONE THOUSAND TWO HUNDRED THIRTY FOUR DOL
SQL 查詢「A 表有但 B 表沒有」資料的最高效寫法
尋找存在於資料表 A 但不存在於資料表 B 的資料,是資料對帳、差異比對的經典需求。本文說明最佳寫法並解析效能原理。 標準最佳解法:LEFT JOIN + I
SQL Server NULL 值完整解析:比較、串連與判斷陷阱
NULL 在 SQL Server 中代表「未知」或「不存在」,而非零值或空字串。這個看似簡單的概念,卻是無數開發者踩坑的源頭。本文透過實測範例,系統釐清 NU
SQL Server 複寫同步完整實作指南:從概念到自動化腳本
SQL Server 複寫技術是企業級資料分散式架構的核心手段,能將資料從單一來源自動同步至多個目的端,確保異地資料一致性。本文系統整理複寫核心概念、三大類型差
DBCC CHECKIDENT 重置 SQL Server 識別欄種子值完整指南
在 SQL Server 資料庫管理中,DBCC CHECKIDENT 是管理識別欄位種子值的核心命令。無論是資料移轉後需要重新同步自動遞增值,或是清空資料表後
海量資料查詢優化與分頁存儲過程進化史:從索引設計到千萬級高效分頁
一、建立「適當」索引:查詢優化首要前提 聚集 vs 非聚集索引直觀理解 聚集索引 = 字典正文按拼音排序,查「安」直接翻前頁,查「張」翻後頁。資料頁即索引葉層
SQL Server 日誌恢復實戰:利用備份還原至誤 DROP/TRUNCATE 前時間點
情境 誤執行 TRUNCATE TABLE 或 DROP TABLE,需透過完整備份 + 記錄備份 + 時間點還原 (Point-in-Time Recover
SELECT INTO vs INSERT INTO SELECT:兩種表複製語句差異與適用場景
語法對照 語句語法目標表需求可插入常數 SELECT INTOSELECT * INTO NewTable FROM SrcTable目標表必須不存在 (自動