用这样的代码:

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

可以获取有关架构的很多信息,但是元数据版本(即:GetSchema())不会返回有关同义词的任何信息。

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

最佳答案

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

SQL Server Schema Collections

似乎确实存在一种使用.NET 3.5覆盖集合的方法。我从来没有做过,所以我不知道它是否真的有效。基本思想是创建一个XML文件来定义getschema如何定义和查询模式数据。然后,您可以更改应用程序配置,以使用此XML文件覆盖可用的集合。

GetSchema Override

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

10-08 07:24