如何使用SqlConnection.GetSchema获取同义词信息?

时间:2015-08-10 15:09:44

标签: c# sql-server schema

使用这样的代码:

DataTable schema = conn.GetSchema();
DataTable tables = conn.GetSchema("Tables");
DataTable columns = conn.GetSchema("Columns");

可以获取有关模式的大量信息,但元数据版本(即:GetSchema())不会返回有关同义词的任何信息。

我们在环境中使用同义词。我可以使用GetSchema获取有关它们的Schema信息,还是需要其他方法?

1 个答案:

答案 0 :(得分:3)

SQL Server的同义词没有架构集合:

SQL Server Schema Collections

似乎有一种方法可以使用.NET 3.5覆盖集合。我从来没有这样做过,所以我不知道它是否真的有效。基本思想是您创建一个XML文件来定义<div style="background-color: #D5ECFA; margin-left: 10px; margin-right: 10px;"> <div style="margin-bottom: 10px; margin-left: 10px; margin-right: 10px; margin-top: 10px;"> <b>Header</b><br> <p>Paragraph 1............</p> <p>Paragraph 2.........</p> <p>Paragraph 3</p> </div> </div> 定义和查询架构数据的方式。然后,您可以更改应用程序配置以使用此XML文件覆盖可用的集合。

GetSchema Override

提供的链接中有一些示例可以将主键集合添加到架构中。如果您决定使用getschema,那看起来很有希望。否则,您可以创建自己的架构函数,只需查询sys.synonyms即可获取同义词。