从存储过程生成模式

时间:2011-05-30 10:05:01

标签: sql sql-server

有没有办法使用此数据库的存储过程从SQL Server数据库创建架构图?

我不介意我是否必须使用外部软件。

3 个答案:

答案 0 :(得分:1)

您可以尝试使用CodeSmith Generator。它是 SchemaExplorer Schema Discovery API 允许您以编程方式访问给定数据库的数据库元素,并使用它做一些创造性的事情。但是,以这种方式对架构/图表进行逆向工程仍然很难。

答案 1 :(得分:0)

您可以构建一个使用SMO库中的Scripter Class的SQLCLR过程。

更新:有关该问题的更多信息显示,该想法是根据存储过程的内容生成具有依赖关系的表模式。

方法是从information_schema视图生成表结构,然后解析syscomments表的内容以找出关系。这将始终是近似的,因为很难完全从SQL语句建立一对多关系。我想你可以根据更多引用的字段进行猜测。

答案 2 :(得分:0)

如果您看不到表格,则无法生成架构。

也就是说,如果您只拥有存储过程的权限,则不能。

至少有两个原因:

  • 存储过程可以加入并使用多个表
  • 即使您有表名
  • ,也看不到约束,索引,键等

基本上,你只能:

  • 查看您在SSMS等方面的权限
  • 如果您有VEIW DEFINITION权利
  • ,请参阅内幕

在澄清之后编辑

无法从代码

编写模式的隐含方面(例如缺少外键)