我有一个包含域\用户帐户作为 nvarchar(100) 的列的视图。我需要将此列中的值从 domain\useraccount 转换为 Last, First Middle。我已成功创建链接服务器 (ADSI),并且可以通过 OpenQuery 调用将硬编码的帐户名称解析为实际名称。
但是,从视图中进行 OpenQuery 调用被证明是不可能的。我尝试了以下选项:
- 在 OpenQuery 调用中使用字符串替换/连接。
- 创建一个函数来包装 OpenQuery 调用,并从视图中调用该函数。
以上选项均无效。#1 失败,因为 OpenQuery 只接受一个预先形成的字符串作为参数,并且不可能在视图中创建一个(据我所知)。#2 失败,因为根据我尝试时收到的错误消息,从视图调用的函数本身不能包含对 EXEC(string) 的调用。#2 实际上是根据这篇知识库文章的官方解决方法的一种变体:
http://support.microsoft.com/kb/314520
任何人都可以对此有所了解吗?似乎没有办法在视图中进行参数化的 OpenQuery 调用。
谢谢!