SQLServer:如何生成資料庫的指令碼
阿新 • • 發佈:2019-01-27
三種方式:
1、程式設計方式實現;
--功能強大,但要求有程式設計基礎,沒有相關的技術文件。
--適合:表、索引等無法通過其它方法批量生成的物件。
2、利用系統檢視實現;
--獲取非常方便,但只能獲取到 標量函式、表值函式、儲存過程、觸發器、檢視 這幾種物件,其它物件無法獲取。
3、資料庫手動操作生成指令碼;
--較為方便, 但失去了自動化和可程式設計。
第一種:
1. 引用SQL Server自帶的dll檔案, 比如我本機(SQL Server2014)在:
D:\Program Files (x86)\Microsoft SQL Server\120\SDK\Assemblies
Microsoft.SqlServer.ConnectionInfo.dll
Microsoft.SqlServer.Management.Sdk.Sfc.dll
Microsoft.SqlServer.Smo.dll
Microsoft.SqlServer.SqlEnum.dll (不深入可不用)
2. 類似的文章很多, 就不寫demo了, 參考文章:
第二種:
--標量函式、表值函式、儲存過程、觸發器、檢視(包含系統物件) SELECT * FROM sys.all_sql_modules --標量函式、表值函式、儲存過程、觸發器、檢視 SELECT * FROM sys.sql_modules --查詢微軟示例庫(AdventureWorks2014)中能夠生成指令碼的物件型別 SELECT type_desc,type FROM sys.objects AS o WHERE o.[object_id] IN ( SELECT sys.sql_modules.[object_id] FROM sys.sql_modules ) GROUP BY TYPE,o.type_desc ORDER BY o.type_desc /* type_desc type SQL_SCALAR_FUNCTION FN SQL_STORED_PROCEDURE P SQL_TABLE_VALUED_FUNCTION TF SQL_TRIGGER TR VIEW V */
第三種: