我目前正在負責根據其模式生成數據庫模型的項目,我想知道是否有任何庫在.Net這是能夠解析SQL腳本文件和讓我:解析SQL Server數據庫的腳本
獲取數據庫的名字從腳本
獲取表命名
獲取每個表中的列
和任何你知道生成模型
任何意見將是有益的。
我目前正在負責根據其模式生成數據庫模型的項目,我想知道是否有任何庫在.Net這是能夠解析SQL腳本文件和讓我:解析SQL Server數據庫的腳本
獲取數據庫的名字從腳本
獲取表命名
獲取每個表中的列
和任何你知道生成模型
任何意見將是有益的。
除SMO以外,沒有任何圖書館爲這項工作。你最好在SQL系統模式上查詢。請參閱以下腳本作爲示例:
SELECT
SPECIFIC_NAME as SpName,
PARAMETER_NAME as ParameterName,
DATA_TYPE as DbType,
CHARACTER_MAXIMUM_LENGTH as Size
FROM INFORMATION_SCHEMA.PARAMETERS
WHERE PARAMETER_MODE = 'IN' OR PARAMETER_MODE = 'INOUT'
此腳本獲取存儲過程參數。或
SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName')
獲取表列。 我建議你不要使用SMO。
@Mitch:這是一個例子 –
你對SMO有什麼反應?你能澄清**爲什麼**你不會使用SMO? –
我總是有新版本的問題。這是我的意見。 –
「我目前工作的一個項目,該項目負責基於其架構生成數據庫模式」更多 - 恩,VS 2008和VS2010已經具備了這種能力:數據庫項目。失敗SMO ... –
我的應用程序是一個基於Web的應用程序,它將託管在非專用服務器上,因此它無法直接訪問數據庫。我希望每個用戶都能夠上傳腳本文件並下載生成的模型。 – saber
你可以看看[Microsoft.Data.Schema.ScriptDom](http://blogs.msdn.com/b/gertd/archive/2008/08/21/getting-to-the-crown-jewels.aspx)解析TSQL腳本。 –