用这样的代码:
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以获取同义词。