之前我們要將一個表中的資料匯出為指令碼,那麼只有在網上找一個匯出資料的Script,然後運行就可以匯出資料指令碼了。現在在SQL Server 2008的Management Studio中增加了一個新特性,除了匯出表的定義外,還支援將表中的資料匯出為指令碼。匯出過程:
在SSMS2008(SQL Server Management Studio 2008)中的物件總管中,右擊需要匯出資料的資料庫,在彈出式菜單中選擇“任務”下的“產生指令碼”選項。
在指令碼嚮導的選擇指令碼選項中,有以下重要選項可以選擇:
“編寫資料的指令碼”:是否匯出資料庫中的表資料。
“包含 If Not Exists”:此選項可以刪除資料庫中已存在的同名的資料庫物件。
“編寫建立資料庫的指令碼”:是否產生 Create Database 的SQL 指令碼
2010102022563956
“為伺服器版本編寫指令碼”:選擇要執行指令碼的資料庫版本。
然後下一步選擇匯出的對象,選擇匯出的表,最後完成時即可以看到由系統匯出的表定義和表資料了。
1)另外有兩個地方要注意。
一、CREATE DATABASE [DBNAME] (如果選擇了“編寫建立資料庫的指令碼”選項) 和 USE [DATABASE] 。
二、改資料庫結構描述,一般本地是用dbo,所以按Ctrl+F鍵,選擇替換視窗,把 dbo 替換成 [YOUR_SCHEMA] 至此指令碼改造完成。
2)但是在實際的操作中,如果從08匯出到低版本的sql中可能會有很多相容性的問題,因此向低級版本匯出指令碼的時候
在“選擇資料庫”中,可以不勾選“為所選資料庫中的所有對象編寫指令碼”複選框
在“選擇指令碼選項”中,注意把“為伺服器版本編寫指令碼”中選擇匯出的資料庫版本(2000,2005,2008)
3)匯出的指令碼如何很大,無法直接在SQL Server Management Studio直接開啟運行,使用 sqlcmd 運行 Transact-SQL 指令檔 (sqlcmd工具)。
運行指令檔
開啟命令提示字元視窗。
在命令提示字元視窗中,鍵入 sqlcmd -S myServer\instanceName -i C:\myScript.sql
按 Enter 鍵。
將此輸出儲存到文字檔中
開啟命令提示字元視窗。
在命令提示字元視窗中,鍵入 sqlcmd -S myServer\instanceName -i C:\myScript.sql -o C:\EmpAdds.txt
按 Enter 鍵。