軟體工程師的小事:到底要不要 Close

SSMS 很好用但還是要多撰寫 Transact SQL | 2019 鐵人賽

雖然微軟為 SQL Server 開發很好用的 GUI 圖形介面 SQL Server Management Studio
但還是要有撰寫 Transact-SQL 指令碼的能力

例:使用下列指定建立新資料表

CREATE TABLE Production.Product 
(
    ... 
)

舉兩個會因使用 Transact-SQL 變得更方便的情境

情境 1

今天要變更一張資料表主索引鍵的資料型態
要執行的步驟如下

  • 移除相依資料表的所有外來鍵參考
  • 移除資料表的主索引鍵
  • 修改外來鍵參考欄位與主索引鍵欄位的資料型態
  • 重新加入主索引鍵
  • 加入原本相依資料表的外來鍵參考

若透過圖形介面操作上述複雜步驟
謹慎的你或許會

  • 先在測試環境先操作過一次
  • 再到正式環境操作一次

若撰寫成 Transact-SQL 語法
僅需要將測試環境執行成功的指令碼
複製到正式環境再執行一次即可

情境 2

於離峰時間進行歷程資料搬移作業
譬如將超過三個月的訂單資料搬移到歷程記錄資料表
為確保交易紀錄檔不會爆衝,會先進行下列步驟

  • 調整資料庫的復原模式為「交易紀錄」
  • 將超過三個月的資料複製到歷程資料表
  • 重新變更復原模式為「完整」

這種離峰作業不會每天手動進行
將操作指令撰寫成 Transact-SQL 指令碼
透過 SQL Agent 或是其他排程工具進行
執行穩定之後就只要持續追蹤即可

多熟悉指令碼,在轉換開發/管理工具,或是當時無法使用熟悉工具時也能夠快速上手
開發/管理工具只是輔助

標準的 SQL 語法在不同資料庫之間也是可以通用

留言