適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
Azure Synapse Analytics
Analytics Platform System (PDW)
本文將教導您使用 [產生腳本精靈 ] 來建立腳本,以在 SQL Server、Azure SQL Database 或 Azure SQL 受控實例的實例之間傳輸資料庫。
您可以在區域網路或 Azure SQL 中產生 SQL Server 資料庫的文稿。 產生的腳本可以在另一個 SQL Server 實例或 Azure SQL 上執行。 您可以建立整個資料庫的腳本,或將其限制為特定物件。
如需使用產生腳本精靈的更詳細教學課程,請參閱 教學課程:產生腳本精靈。
先決條件
來源和目標資料庫可以位於 Azure SQL Database 或 Azure SQL 受控實例上,或是執行 SQL Server 2005 (9.x) 或更新版本的 Database Engine 實例。
權限
產生腳本的最低許可權是源資料庫上 db_ddladmin 固定資料庫角色的成員資格。
使用產生腳本精靈
在物件瀏覽器中,展開包含要編寫腳本的資料庫之實例的節點。
以滑鼠右鍵按下您要編寫腳本的資料庫,然後選取 [工作>產生腳本]。
完成精靈程式對話框:
簡介頁面
此頁面描述產生腳本的步驟。
不要再次顯示此頁面 - 下次啟動 [產生腳本精靈] 時略過此頁面。
[選擇物件] 頁面
使用此頁面來選擇要包含在此精靈所產生腳本中的物件。
整個資料庫腳本選項 - 選擇此選項以產生資料庫中所有物件的腳本,並包含資料庫本身的腳本。
選取特定的資料庫物件 - 選取以限制精靈,只針對您選擇的資料庫中的特定物件產生腳本:
設定文稿選項頁面
使用此頁面來指定您是否希望精靈將腳本儲存至您選擇的位置。
選項 - 如果您想要精靈將文本儲存到您選擇的位置,請選取 [ 將腳本儲存至特定位置]。 您稍後可以針對Database Engine的實例或 SQL Database 執行腳本。
將文稿儲存至特定位置 - 將 一或多個 Transact-SQL 腳本檔案儲存至您指定的位置。
另存成筆記本 - 將腳本儲存至一或多個.sql檔案。 選取瀏覽按鈕 (...) 以指定檔案的名稱和位置。
另存成腳本檔案 將腳本儲存至一或多個.sql檔案。 選取瀏覽按鈕 (...) 以指定檔案的名稱和位置。 選取 [ 覆寫現有的檔案 ] 複選框,以取代已存在的同名檔案。 選取 [單一腳本檔案] 或 [每個物件的一個腳本檔案],以指定應該如何產生腳本。 選取 [Unicode 文字 ] 或 [ANSI 文字 ],以指定腳本中應該使用的文字種類。
儲存至剪貼簿 - 將 Transact-SQL 文稿儲存至剪貼簿。
在新查詢視窗中開啟 - 產生腳本至 Database Engine 查詢編輯器視窗。 如果沒有開啟編輯器視窗,則會開啟新的編輯器視窗做為腳本的目標。
進階 - 顯示 [ 進階選項 ] 對話框,您可以在其中選取進階腳本選項。
進階腳本選項頁面
使用此頁面來指定您希望此精靈產生腳本的方式。 有許多不同的選項可供使用。 如果 資料庫引擎類型中指定的 SQL Server 版本或 SQL Database 版本不支援選項,選項會呈現灰色。
選項 - 從每個選項右邊的可用設定清單中選取值,以指定進階選項。
一般 - 下列選項適用於整個腳本。
ANSI 填補 - 程式中包含
ANSI PADDING ON
。 預設值為 false 。附加至檔案 - 當 為 True 時,此腳本會新增至現有腳本的底部,並在 [ 設定腳本選項 ] 頁面上指定。 當 為 False 時,新的腳本會覆寫先前的腳本。 預設值為 false 。
檢查物件是否存在 - 如果 為 True,請在產生 SQL 物件的 create 語句之前新增存在檢查。 例如:數據表、檢視表、函式或預存程式。 語句
CREATE
會包裝在 IF 語句中。 如果您確定您的目標不存在問題,腳本會更加簡潔。 如果您不預期物件存在於目標上,您會收到錯誤。 預設值為 false 。在錯誤時繼續編寫文本 - 當 False 時,腳本會在發生錯誤時停止。 當 為 True 時,腳本會繼續進行。 預設值為 false 。
將 UDDT 轉換成基底類型 - 當 為 True 時,使用者定義資料類型 (UDDT) 會轉換成用來建立它們的基礎基底數據類型。 當文稿執行所在的資料庫中沒有 UDDT 時,請使用 True 。 若為 False,則會使用 UDDT。 預設值為 false 。
生成相依物件的腳本 - 為執行所選對象的腳本時必須存在的任何物件生成腳本。 [編寫整個資料庫腳本] 選項的預設值為 True,而 Select 特定資料庫對象的預設值為 False。
包含描述性標頭 - 當 為 True 時,描述性批註會新增至腳本,將腳本分成每個物件的區段。 預設值為 false 。
包含 IF NOT EXISTS - 當 為 True 時,腳本會包含語句來檢查物件是否已經存在於資料庫中,而且如果對象已經存在,則不會嘗試建立新的物件。 預設值為 false 。
包含系統條件約束名稱 - 若 為 False,源資料庫上自動命名的條件約束預設值就會在目標資料庫上自動重新命名。 當 為 True 時,條件約束在來源和目標資料庫上具有相同的名稱。
包含不支援的語句 - 若 為 False,腳稿不會包含所選伺服器版本或引擎類型不支援之物件的語句。 如果 為 True,腳本會包含不支持的物件。 不支持物件的每個語句都有批註,且該語句必須編輯後,才能對選取的 SQL Server 版本或引擎類型執行腳本。 預設值為 false 。
架構限定物件名稱 - 在建立的物件名稱中包含架構名稱。 預設值為 True。
文稿系結 - 產生用於系結預設和規則對象的腳本。 預設值為 false 。 如需詳細資訊,請參閱 CREATE DEFAULT (Transact-SQL) 和 CREATE RULE (Transact-SQL) 。
文稿定序 - 在文稿中包含定序資訊。 預設值為 false 。 如需詳細資訊,請參閱定序和 Unicode 支援。
文稿預設值 - 包含用來在數據表數據列中設定預設值的預設物件。 預設值為 True。 如需詳細資訊,請參閱 指定數據行的預設值。
腳本刪除和建立 - 當使用 腳本 CREATE 時,會包含 Transact-SQL 命令來建立物件。 當 腳本DROP時,會包含 Transact-SQL 語句來卸除物件。 當 Script DROP 和 CREATE 時,腳本中會包含 Transact-SQL drop 語句,後面接著每個腳本物件的 create 語句。 預設值為 Script CREATE。
腳本擴充屬性 - 如果物件具有擴充屬性,則包含腳本中的擴充屬性。 預設值為 True。
引擎類型的腳本 - 建立用於在選定類型的 SQL Database 或 SQL Server 資料庫引擎實例上運行的腳本。 腳本中不包括不支持指定類型的物件。 預設值為源伺服器的類型。
伺服器版本的腳本 - 建立可在所選 SQL Server 版本上執行的腳本。 新版本的功能無法在舊版本中編寫腳本。 預設值為源伺服器的版本。
腳本登入 - 當要編寫腳本的對象是資料庫使用者時,此選項會建立使用者所依賴的登入。 預設值為 false 。
編寫物件層級許可權 - 包含腳本,以設定資料庫中對象的許可權。 預設值為 false 。
腳本統計數據 - 當設定為 [腳本統計數據] 時,此選項會包含
CREATE STATISTICS
語句,以重新建立 物件上的統計數據。 [ 腳本統計數據和直方圖 ] 選項也會建立直方圖資訊。 預設值為 [不要編寫統計數據腳本]。 如需詳細資訊,請參閱 CREATE STATISTICS (Transact-SQL)。腳本 USE DATABASE - 將
USE DATABASE
語句新增至腳本。 若要確定資料庫物件是在正確的資料庫中建立,請包含USE DATABASE
語句。 如果您預期在不同的資料庫中使用腳本,請選取 [False ] 以省略USE DATABASE
語句。 預設值為 True。 如需詳細資訊,請參閱 USE (Transact-SQL)。要編寫文本的數據類型 - 選取應該編寫腳本的內容: 僅限數據、 僅限架構或兩者。 預設值 為僅限架構。
數據表/檢視選項 - 下列選項僅適用於數據表或檢視的腳本。
腳本變更追蹤 - 如果在源資料庫或源資料庫中的數據表上啟用了腳本變更追蹤。 預設值為 false 。 如需詳細資訊,請參閱 關於變更追蹤 (SQL Server) 。
腳本檢查條件約束 - 將條件約束新增
CHECK
至腳本。 預設值為 True。CHECK
條件約束需要輸入數據表的數據,才能符合某些指定的條件。 如需詳細資訊,請參閱 唯一性約束 和 檢查約束。編寫數據壓縮選項的腳本 - 如果在源資料庫或源資料庫中的數據表上設定數據壓縮選項,則會編寫數據壓縮選項的腳本。 如需詳細資訊,請參閱 數據壓縮。 預設值為 false 。
編寫外鍵腳本 - 將外鍵新增至腳本。 預設值為 True。 外鍵指示並強制執行數據表之間的關聯結構。
編寫全文檢索索引的腳本 - 編寫建立全文檢索索引的腳本。 預設值為 false 。
腳本索引 - 編寫索引的建立腳本。 [編寫整個資料庫腳本] 選項的預設值為 True,而 Select 特定資料庫對象的預設值為 False。 索引可協助您快速尋找數據。
編寫主鍵的腳本 - 腳本在數據表上建立主鍵。 預設值為 True。 主鍵可唯一識別數據表的每個數據列。
腳本觸發器 - 在資料表上建立 DML 觸發器的腳本。 預設值為 false 。 DML 觸發程式是在資料庫伺服器中發生資料作語言 (DML) 事件時所要執行的動作。 如需詳細資訊,請參閱 DML Triggers。
編寫唯一索引鍵的腳本 - 腳本在數據表上建立唯一索引鍵。 唯一索引鍵可防止輸入重複的數據。 預設值為 True。 如需詳細資訊,請參閱 唯一性約束 和 檢查約束。
摘要頁面
此頁面摘要說明您在此精靈中選取的選項。 若要變更選項,請選取 上一。 若要開始產生腳本,請選取 [ 下一步]。
檢閱您的選擇 - 顯示您為嚮導每個頁面所做的選擇。 展開節點以查看對應頁面的選取選項。
儲存腳本頁面
使用此頁面來即時監控精靈的進度。
詳細數據 - 檢視 [動作] 數據行,以查看精靈的進度。 精靈產生腳本之後,它會將腳本儲存至檔案。 當這些步驟完成時,請選取 [結果 ] 數據行中的值,以查看對應步驟的結果。
儲存報表 - 選取即可將精靈進度的結果儲存至檔案。
取消 - 選取在處理完成之前關閉精靈,或發生錯誤時關閉精靈。
完成 - 選取在處理完成之後關閉精靈,或發生錯誤時。
儲存腳本
如果所有設定都正確,您的設定就會順利完成。
在 Azure Synapse Analytics 上產生腳本
如果使用「以腳本顯示…」所產生的語法看起來不像 Azure Synapse Analytics 的語法或您收到錯誤訊息,您可能需要在 SQL Server Management Studio 中將腳本選項設定為 Azure Synapse Analytics。
如何將預設腳本選項設置為 SQL Data Warehouse
若要使用 Azure Synapse Analytics 語法編寫物件的腳本,請將預設腳本選項設定為 Azure Synapse Analytics,如下所示:
- 選取 [工具 ],然後選取 [選項]。
- 選取 SQL Server 物件總管 和 腳本。
- 在 [版本選項] 底下,將 [比對腳本設定] 設定為 [False]。
- 將 資料庫引擎類型的腳本 設定為 Microsoft Azure SQL Database Edition。
- 針對 Azure Synapse Analytics 中的專用 SQL 集區,請將 資料庫引擎版本的腳本 設定為 Microsoft Azure SQL 數據倉儲版本。
- 請選擇 [確定]。
當 SQL 資料倉儲不是預設指令碼選項時,如何生成其腳本
如果您如先前所示,將 Azure Synapse Analytics 設定為預設腳本選項,則可以忽略這些指示。 不過,如果您選擇使用不同的預設腳本選項,可能會遇到錯誤。 若要避免錯誤,請遵循下列步驟來產生 Azure Synapse Analytics 的腳本:
- 在物件總管中,以滑鼠右鍵單擊資料庫下的專用 SQL 集區。
- 選取 [產生腳本]。
- 選擇 您要編寫腳本的物件。
- 在 [腳本選項] 中,選取 [ 進階]。 在 [一般 ] 集合底下:
- 資料庫引擎類型的腳本: Microsoft Azure SQL Database。
- 資料庫引擎版本的腳本: Microsoft Azure SQL 數據倉儲版本。
- 選取 [儲存腳本 ],然後 選取 [完成]。
不記得在步驟 4 中設定的選項。 如果您想要記住這些選項,請遵循 如何將預設腳本選項設定為 SQL 數據倉儲中的指示。