2009-11-08 86 views
3

對於自動安裝的構建產生的設置爲它使用Microsoft SQL Server的應用程序,我目前正在評估以下是可能的:程序生成的所有對象腳本在數據庫

我想以編程方式(CMD腳本或C#代碼)在可從Microsoft SQL Server Management Studio 2008訪問的數據庫上執行功能「Generate Scripts」。

即調用一些代碼並將指定數據庫的所有對象(表,SP,約束等)作爲SQL腳本。

目前,我只需要結構,而不是數據。

問題:是否有可能實現此目標?

回答

5

我寫了SMOscript,一個命令行工具將所有對象腳本編寫成一個文件,或者一個文件編寫所有對象。

的生成MSSQL的腳本功能,通常不考慮引用和依賴,以確定對象的順序(至少是這種情況與2000年和2005年)

+1

您的代碼是否適用於SQL Server 2008?我發現它需要安裝SQL Server 2005的庫才能工作。否則,它是一個_wonderful_工具。 – cjbarth 2011-09-12 19:59:07

+1

2008年(10.0.2531.0 SP1)我定期使用版本0.19 – devio 2011-09-13 05:41:25

+0

當前版本不適用於SQL Azure數據庫。不要太奇怪,因爲它無法從SSMS 2008 R2中的生成腳本中運行,兩者都以關於Index的相同錯誤消息結束,而不在數組邊界之內。 (請參閱我的問題在這裏:http://stackoverflow.com/questions/9622688/use-sqlmetal-on-sql-azure-database) – mellamokb 2012-03-08 18:38:43

2

你應該能夠用做在託管代碼SMO

1

微軟還發布了一個名爲'mssql-scripter'的工具。它可以在這裏找到:mssql-scripter

+0

看起來很棒!非常感謝 。 – 2017-11-15 13:32:51

相關問題