Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 解析SQL Server数据库的脚本_C#_.net_Sql_Sql Server_Parsing - Fatal编程技术网

C# 解析SQL Server数据库的脚本

C# 解析SQL Server数据库的脚本,c#,.net,sql,sql-server,parsing,C#,.net,Sql,Sql Server,Parsing,我目前正在从事一个项目,该项目负责根据其架构生成数据库模型,我想知道.Net中是否有任何库能够解析SQL脚本文件,并允许我: 从脚本中获取数据库名称 获取表名 获取每个表的列 还有你们知道的任何生成模型的东西 任何建议都会很有帮助。除了SMO之外,没有任何图书馆可以做这项工作。最好对sql系统模式进行查询。请参见以下脚本作为示例: SELECT SPECIFIC_NAME as SpName, PARAMETER_NAME as ParameterName, DAT

我目前正在从事一个项目,该项目负责根据其架构生成数据库模型,我想知道.Net中是否有任何库能够解析SQL脚本文件,并允许我:

从脚本中获取数据库名称

获取表名

获取每个表的列

还有你们知道的任何生成模型的东西


任何建议都会很有帮助。

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

比我预期的要多


我目前正在从事一个项目,该项目负责根据其模式生成数据库模型——erm、VS2008和VS2010已经具备了这个能力:数据库项目。未能通过SMO…我的应用程序是一个基于web的应用程序,它将托管在没有专用服务器的情况下,因此无法直接访问数据库。我希望每个用户都能够上传脚本文件并下载生成的模型。您可以查看如何解析TSQL脚本。您对SMO有什么看法?你能解释一下为什么不使用SMO吗?我对新版本总是有问题。这是我的意见。@Mitch Wheat:我正在阅读SMO概述,SMO能满足我发布的要求吗?是的。SMO过去名声不好:它的大多数问题都可以解决。可能感兴趣的是: