SQL Server 2008:生成腳本嚮導中直接有「編寫數據的腳本」True/False 選項。
SQL Server 2012/2014/2016/2019:選項移至 高級 按鈕 → 要編寫腳本的數據類型 下拉框,選 架構和數據。
BlogDB) → 任務 → 生成腳本。D:\Scripts\BlogDB.sql)、編碼 UTF-8 → 下一步。.sql 文件,可見 CREATE TABLE + INSERT INTO ... VALUES ... 完整腳本。| 選項 | 建議值 | 說明 |
|---|---|---|
| 腳本目標服務器版本 | 匹配目標環境 | 避免新語法導致舊版本部署失敗 |
| 編寫主鍵/外鍵/約束 | True | 保持完整性定義 |
| 編寫觸發器 | True | 業務邏輯隨表部署 |
| 包含 IF NOT EXISTS | True | 冪等部署,重複執行不報錯 |
| 編碼 | UTF-8 | 防中文亂碼 |
bcp / BULK INSERT / SSIS 導出二進制/CSV 格式,僅用腳本導出架構。BACKUP DATABASE ... TO DISK ... WITH COMPRESSION。[Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null
$srv = New-Object Microsoft.SqlServer.Management.Smo.Server "."
$db = $srv.Databases["BlogDB"]
$scr = New-Object Microsoft.SqlServer.Management.Smo.Scripter $srv
$scr.Options.ScriptData = $true
$scr.Options.TypesToScript = [Microsoft.SqlServer.Management.Smo.SqlScriptTypes]::ScriptData
$scr.Options.FileName = "D:\Scripts\BlogDB_Data.sql"
$scr.Script($db.Tables | Where-Object { -not $_.IsSystemObject })