2011-08-21 77 views
0

我目前正在負責根據其模式生成數據庫模型的項目,我想知道是否有任何庫在.Net這是能夠解析SQL腳本文件和讓我:解析SQL Server數據庫的腳本

  1. 獲取數據庫的名字從腳本

  2. 獲取表命名

  3. 獲取每個表中的列

  4. 和任何你知道生成模型

任何意見將是有益的。

+1

「我目前工作的一個項目,該項目負責基於其架構生成數據庫模式」更多 - 恩,VS 2008和VS2010已經具備了這種能力:數據庫項目。失敗SMO ... –

+0

我的應用程序是一個基於Web的應用程序,它將託管在非專用服務器上,因此它無法直接訪問數據庫。我希望每個用戶都能夠上傳腳本文件並下載生成的模型。 – saber

+1

你可以看看[Microsoft.Data.Schema.ScriptDom](http://blogs.msdn.com/b/gertd/archive/2008/08/21/getting-to-the-crown-jewels.aspx)解析TSQL腳本。 –

回答

0

除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。

+0

@Mitch:這是一個例子 –

+0

你對SMO有什麼反應?你能澄清**爲什麼**你不會使用SMO? –

+0

我總是有新版本的問題。這是我的意見。 –