﻿# 查詢透過 Management Studio 的 GUI 所執行的 T-SQL 指令

透過 Management Studio 的 GUI 圖形介面操作的背後其實都是一堆 T-SQL 指令，但好像很少人知道如何將他實際執行的 T-SQL 取出來，其實是一個很簡單的技巧，但是卻很重要，例如說你要修改資料庫的表格或欄位名稱時，為了讓開發環境的資料庫結構(Schema)與正式主機環境的資料庫結構一致，你必須將你每次在開發環境變更的動作(T-SQL)儲存成「變更指令碼」(Changed Script)，讓資料庫管理人員(DBA)可以在正式環境直接執行 T-SQL 就可以完成資料庫結構的變更，否則將會很容易造成開發主機與正式主機資料庫不一致的情況，我今天將告訴各位如何將 T-SQL 匯出成檔案或顯示在查詢視窗。

我想直接舉幾個例子並放幾張圖片大家就應該能夠舉一反三了。

**新增資料庫**

> 新增資料庫時，當資料庫各項屬性設定完成後，按下「指令碼」就可以將你這次要新增資料庫的動作新增至查詢視窗。
> 
> ![新增資料庫](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/2dbd08418e5524be2fe4-image_3.png) 
> 
> [![新增資料庫時，當資料庫各項屬性設定完成後，按下「指令碼」就可以將你這次要新增資料庫的動作新增至查詢視窗。](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/ff39099ebb81e7e842f5-image_thumb_1.png)](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/ebc3ef950dc06f6f6036-image_5.png)

**修改表格結構**

> 在尚未修改任何欄位之前，這個「產生變更指令碼」的按鈕是 Disable 的。
> 
> ![在尚未修改任何欄位之前，這個「產生變更指令碼」的按鈕是 Disable 的](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/a134fbff7a2d960699ff-image_15.png)
> 
> 當修改了欄位或任何表格屬性後，這個「產生變更指令碼」的按鈕就會亮起來，直到按下「儲存」按鈕之前（或按 Ctrl + S）都會是亮的。
> 
> ![當修改了欄位或任何表格屬性後，這個「產生變更指令碼」的按鈕就會亮起來，直到按下「儲存」按鈕之前（或按 Ctrl + S）都會是亮的。](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/3318f718aa32d1f45efe-image_16.png)
> 
> **注意**：千萬不要先儲存本次變更，因為只要儲存了之後，就無法匯出本次變更的「變更指令碼」了。

**備份資料庫**

> 備份、還原資料庫，或是卸離資料庫(Detach)、附加資料庫(Attach)都是可以的，且介面也都差不多。
> 
> ![備份資料庫](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/075f569fb8d2f740cfb0-image_21.png)
> 
> ![備份資料庫](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/60f0f35e61cf2050a8ae-image_22.png)

我想三個例子已經夠了吧！以後大家如果想將一些日常的手動修改資料庫的動作寫成批次檔作業的話（例如說備份資料庫），就可以用今天這個技巧將 T-SQL 查出來，並且透過 [sqlcmd.exe](http://msdn.microsoft.com/zh-tw/library/ms162773.aspx) 工具執行即可。

**相關連結**

-   [sqlcmd 公用程式](http://msdn.microsoft.com/zh-tw/library/ms162773.aspx)
-   [使用 sqlcmd 公用程式](http://msdn.microsoft.com/zh-tw/library/ms180944.aspx)
