我正在尝试从几个不同的来源获取相同的信息,但在尝试使用 NotesSQL 和 SQL 2008 时遇到了困难。我想做的是从 Domino 服务器上的几个不同视图中检索信息。一个视图是默认视图,另一个是创建的视图。
我使用的一种方法是 Powershell,我在其中获取数据库,然后选择视图,获取第一个文档,然后遍历我需要的其余视图抓取字段。我选择的视图是人物视图。
我试图使用 SQL 2008 复制同样的东西,使用 NotesSQL 驱动程序,设置 ODBC 连接,然后创建到该 Notes 数据库的链接服务器。我正在使用以下查询从人员视图中进行选择:
select * from openquery(MyNotesServer,'Select * from People')
但是,当我使用 Powershell 并遍历该视图中返回的文档时,从该视图返回的内容不是我能够看到的。Powershell 在其中显示 100 多列,而 SQL 仅返回 5 列。此外,它们被命名为“_12”、“17”等。一些字段(可能是自定义的,我不知道)有一个有意义的名称。在显示的字段中,我可以按名称(“_12”等)选择它们,但不能选择其他任何内容。行数 (SQL) 与视图中的文档数 (Powershell $view.Allentries.Count
) 相同。
查询已创建的视图(3 个字段):
select * from openquery(MyNotesServer,'Select * from MyCreatedView')
返回该视图中的所有字段,它们的名称与视图中的一样。
在 T-SQL 查询 People 视图中,您如何获得我在 Powershell 脚本中发现的我知道的列的名称?它们似乎没有被命名为相同的东西,那么当您select *
从视图中返回的 5 之外,您如何检索?我已通读 Notes 文档和示例,但无法弄清楚映射到何处。
这背后的原因是希望利用 SQL 和 notes.id 文件而不是运行脚本。另外,我想利用已经存在的全局视图,而不是只有作者才能访问的视图。