我正在尝试对 SQL Server 2005 视图执行邮件合并。我创建了两次相同的视图,一次没有指定架构(即 DBO),一次指定了架构。在 SQL Server Management Studio 中,使用 Windows 身份验证登录,我可以毫无问题地访问这两个视图。
使用 Word 2012 中的“选择收件人”>“使用现有列表”选项,我使用 Windows 身份验证连接到数据库服务器。两个视图都包含在可用表列表中,如下所示。
接下来,我为每个视图创建了一个连接。我能够成功从“dbo”拥有的视图合并。但是,我无法从“Permit”拥有的视图合并。我收到以下错误。
我知道的唯一区别是成功的那个使用默认的“dbo”架构,而另一个使用“Permit”。是否有额外的步骤来确保在合并时使用架构信息?如何从不属于“dbo”的表或视图进行邮件合并?
更新
我做了一些额外的测试。查看用于定义连接的 ODC 文件,我发现架构信息已正确记录。
为了测试,我将 ODC 文件重命名为 HTM 文件,并在 Internet Explorer 中打开它。它毫无问题地显示了数据库中的实时数据。
然后,我尝试在使用 SQL Server Profiler 监听的同时进行邮件合并,只是为了看看 Word 正在尝试运行哪些查询。
正如我所怀疑的,Word 2010 在邮件合并时没有使用架构信息。
答案1
这是 Word 2003、Word 2007 和 Word 2010 中的一个已知问题。Microsoft 知识库文章中包含答案。
http://support.microsoft.com/kb/918295
本文介绍了 Word 2003 和 Word 2007 的过程,但 Word 2010 也类似。以下是我针对 Word 2010 所做的操作。
- 退出所有 Office 程序。
- 点击开始, 点击跑步, 类型注册表编辑器,然后点击好的。
- 找到并单击以下注册表子项: HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common
- 在编辑菜单,指向新的,然后点击DWORD 值。
- 类型使用合格表名称进行邮件合并,然后按ENTER。
- 右键点击使用合格表名称进行邮件合并,然后点击调整。
- 在里面价值数据框,类型1,然后点击好的。
- 在文件菜单上,单击退出以退出注册表编辑器。