SSMS「生成腳本」精靈默認**僅導出架構**,數據不導出。只需在「高級選項」將「要編寫腳本的數據類型」改為「架構和數據」,即可一次性導出建表語句+INSERT 數據。
-- 建表架構
CREATE TABLE [dbo].[Customers](
[CustomerId] [char](5) NOT NULL,
[City] [varchar](10) NOT NULL,
CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED ([CustomerId] ASC)
);
-- 數據 INSERT
INSERT [dbo].[Customers] ([CustomerId], [City]) VALUES (N'FISSA', N'Madrid');
INSERT [dbo].[Customers] ([CustomerId], [City]) VALUES (N'FRNDO', N'Madrid');
...
| 問題 | 原因 | 解決 |
|---|---|---|
| 導出文件巨大 (GB 級) | 大表數據全用 INSERT,文本膨脹 | 大表改用 BCP/導入導出嚮導/SSIS 導出二進制格式 |
| 導出腳本執行報錯「違反外鍵約束」 | 表導出順序未按依賴關係排序 | 勾選「依賴對象」或手動調整腳本順序;或先禁用 FK 後啟用 |
| IDENTITY 列插入失敗 | 腳本含 IDENTITY 列值但目標表未 SET IDENTITY_INSERT ON | 腳本前後添加 SET IDENTITY_INSERT Table ON/OFF |
| 加密對象無法腳本化 | WITH ENCRYPTION 的預存過程/視圖 | 無法導出,需保留原始源碼 |
「生成腳本」+「高級選項→架構和數據」是中小型數據庫遷移、版本控制、測試數據準備的**最快捷方式**。大表請改用 BCP/SSIS/DACPAC。