我正在使用ADO ConnectionOpenSchema()
调用的各种形式成功地从SQL服务器上托管的数据库中提取列定义,因此我可以以编程方式在另一个SQL数据库中重新创建这些表。到现在为止还挺好。
与上述表格的主要交互是通过多个视图进行的。尽管OpenSchema()
能够以与返回表的列定义相同的方式返回视图的列定义,但是缺少了关键的信息-视图中的列映射到基础表中的哪个表和列。
我尝试访问用于使用ADOX目录视图创建视图的SQL命令,但似乎我们正在使用的SQL Server的OLEDB驱动程序不支持此功能。
是否有任何方法可以通过ADO获得有关视图配置的此信息,即声明“ ColumnX映射到表Z中的ColumnY”还是采用用于创建视图的实际SQL命令的形式?
select m.definition from sys.sql_modules m where m.object_id = object_id('dbo.MyView', 'V')