2011-08-21 115 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

我总是有新版本的问题。这是我的意见。 –

相关问题