有時候常常改程式時,會需要下SQL去改動資料庫的欄位,然後為了後續上版時方便,又還需要再另外把當初所用的SQL另外存在記事本內,等到需要上版時就可以直接拿出來用。但往往有時候忘記存或紀錄的資料遺失時,就得人工比對看測試區跟正式區的欄位了。
這次因緣際會之下,在工作上有用到SQL Server資料庫專案,它可以讓我們不用下SQL,就可以直接透過介面操作就直接針對資料庫的欄位做修改。後續要上到正式區環境時,也只要直接透過該專案就可以將異動的欄位直接同步更新過去。話不多說,直接就看以下的操作範例看是如何進行的。
首先我們要做的就是透過VS建立SQL Server資料庫專案。這邊以VS2015為例,點選工具列上的檔案=>新增專案,然後在範本中選擇SQL Server便會看到SQL Server資料庫專案。
把方案的名稱取好後,就會在方案總管內看到預設的SQL Server資料庫專案的架構(其實裡面幾乎是什麼都沒有)
接著對專案點選右鍵選擇匯入,此時會看到三個選項:
- 資料層應用程式
- 資料庫
- 指令碼
以個人常用的順序下去做排序的話,應該是資料庫>資料層應用程式>指令碼,所以這邊就先以資料庫的部分進行操作上的說明。
選擇了資料庫之後,便會看到以下的畫面。首先我們先要做的,就是新增連線。
然後就是把要連接的資料庫資訊填一填,選擇好資料庫的名稱,測試連線正常後便可以按下確定,並選擇啟動。接著程式便會幫處理好,完成後便會看到方案總管內多了一個資料夾,展開後會發現資料庫內的預存程序、資料表跟檢視表都在裡面。
到了這邊我們已經可以直接透過產出的部分進行預存程序、資料表跟檢視表的編輯處理。如果要對資料表做修改時,只要直接開啟Tables資料夾內,相對應的資料表名稱檔案,就會看到維護的介面。這邊我們可以透過上方的設計介面或是下方的T-SQL介面進行資料表欄位的修改。
這邊我新增了一個欄位(gender),接著要把該欄位同步到資料庫裡去。於是便直接對專案點選右鍵,然後選擇結構敘述比較。
要注意做完修改後要記得將檔案儲存起來,然後再進行同步的操作。
然後在右邊的選取目標部分,選擇要同步的資料庫資料,然後按下工具列裡的比較按鈕。
這個時候就會看到很清楚裡比較資料,像我剛剛加的欄位就會出現在訊息中。如果有些欄位沒有要同步過去的話,記得要改勾選的選項取消掉,確認完之後便可以點選功能列中的更新按鈕,將差異的部分同步至資料庫去。
更新完之後,透過資料庫工具就可以看到剛剛我們剛剛新增的欄位已經同步過去了。
之後如果測試完後,要同步至正式環境時,也可以直接透過該專案將這次異動的欄位同步過去,非常的方便。如果該專案再配上版控(像是git)的話,資料表的欄位其實就可以透過版控進行管理。