對於自動安裝的構建產生的設置爲它使用Microsoft SQL Server的應用程序,我目前正在評估以下是可能的:程序生成的所有對象腳本在數據庫
我想以編程方式(CMD腳本或C#代碼)在可從Microsoft SQL Server Management Studio 2008訪問的數據庫上執行功能「Generate Scripts」。
即調用一些代碼並將指定數據庫的所有對象(表,SP,約束等)作爲SQL腳本。
目前,我只需要結構,而不是數據。
問題:是否有可能實現此目標?
對於自動安裝的構建產生的設置爲它使用Microsoft SQL Server的應用程序,我目前正在評估以下是可能的:程序生成的所有對象腳本在數據庫
我想以編程方式(CMD腳本或C#代碼)在可從Microsoft SQL Server Management Studio 2008訪問的數據庫上執行功能「Generate Scripts」。
即調用一些代碼並將指定數據庫的所有對象(表,SP,約束等)作爲SQL腳本。
目前,我只需要結構,而不是數據。
問題:是否有可能實現此目標?
我寫了SMOscript,一個命令行工具將所有對象腳本編寫成一個文件,或者一個文件編寫所有對象。
的生成MSSQL的腳本功能,通常不考慮引用和依賴,以確定對象的順序(至少是這種情況與2000年和2005年)
你應該能夠用做在託管代碼SMO
您可以通過the sysobjects view調用標準選擇子句(例如使用ADO.NET)。
我用http://www.codeplex.com/ScriptDB取得了很大的成功。
您的代碼是否適用於SQL Server 2008?我發現它需要安裝SQL Server 2005的庫才能工作。否則,它是一個_wonderful_工具。 – cjbarth 2011-09-12 19:59:07
2008年(10.0.2531.0 SP1)我定期使用版本0.19 – devio 2011-09-13 05:41:25
當前版本不適用於SQL Azure數據庫。不要太奇怪,因爲它無法從SSMS 2008 R2中的生成腳本中運行,兩者都以關於Index的相同錯誤消息結束,而不在數組邊界之內。 (請參閱我的問題在這裏:http://stackoverflow.com/questions/9622688/use-sqlmetal-on-sql-azure-database) – mellamokb 2012-03-08 18:38:43