gpt4 book ai didi

sql-server - SQL Server OpenQuery - 将参数结果从主 SELECT 查询传递到子查询

转载 作者:行者123 更新时间:2023-12-03 19:58:49 27 4
gpt4 key购买 nike

我正在 SSRS 中创建一个返回一堆数据的报告,我需要返回的列之一是来自 Active Directory 的值。我有一个查询,它获取一个我想传递给一个在 Active Directory 中查找值的子查询的值。

到目前为止我所拥有的看起来像这样(简化):

DECLARE @UserID int
SELECT @UserID = UserID FROM dbo.Users As TEST WHERE (RecordID = 123456)

(SELECT displayName FROM OpenQuery (
ADSI,
'SELECT displayName
FROM ''LDAP://DC=company,DC=local''
WHERE objectCategory=''user'' AND extensionattribute5='' +@UserID+ ''
') ) AS LoggedBy

FROM dbo.UserRecords WHERE UserID = 1

然而,问题是当我在子查询中使用 @UserID 时,输出别名“LoggedBy”总是返回“Null”。如果我取出参数并手动键入参数具有的值,它可以正常工作。

似乎我无法将 @UserID 参数从主查询获取到子查询中。只是想知道,我在这里错过了什么?

最佳答案

您不能以这种方式将变量发送到 OpenQuery 上下文中。尝试过滤查询“外部”:

DECLARE @UserID int
SELECT @UserID = UserID FROM dbo.Users As TEST WHERE (RecordID = 123456)

(SELECT t.displayName FROM OpenQuery (
ADSI,
'SELECT displayName, extensionattribute5
FROM ''LDAP://DC=company,DC=local''
WHERE objectCategory=''user''
') as t
WHERE t.extensionattribute5=@UserID ) AS LoggedBy


FROM dbo.UserRecords WHERE UserID = 1

来自 MSDN

OPENQUERY does not accept variables for its arguments.

关于sql-server - SQL Server OpenQuery - 将参数结果从主 SELECT 查询传递到子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27400434/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com