Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Формировать динамический запрос для OpenQuery? Возможно?  [new]
Alexander2
Member

Откуда: Calgary
Сообщений: 1167
Пытаюсь сформировать список юзеров с принадлежностью к разным департментам, выдергивая данные из Lotus
IF OBJECT_ID(N'tempdb..#TmpUsers') IS NOT  NULL
DROP TABLE #TmpUsers
CREATE TABLE #TmpUsers(
grp varchar(20) NULL
,[name] varchar(30) NULL
)
declare @groupname nvarchar(255)
declare @query nvarchar(4000)
SET NOCOUNT ON
DECLARE mydivision CURSOR FORWARD_ONLY FOR
SELECT cn 
FROM OPENQUERY(ADLDAP,'SELECT cn FROM ''LDAP://myfirm01/ DC=myfirm,DC=com'' WHERE objectCategory=''group''')
OPEN mydivision
FETCH NEXT FROM mydivision
INTO @groupname
WHILE @@FETCH_STATUS = 0
BEGIN
   SELECT @groupname, name FROM OPENQUERY( ADLDAP,'SELECT name FROM ''LDAP://myfirm01/ DC=myfirm,DC=com'' WHERE memberOf=''CN='+@groupname+',CN=Users,DC=myfirm,DC=com''')
FETCH NEXT FROM mydivision
INTO @groupname
END
close mydivision
deallocate mydivision

Msg 102, Level 15, State 1, Line 18
Incorrect syntax near '+'
Это ругается на строку select из openquery
Если там жестко задано имя департмента, то все работает:
 SELECT @groupname, name FROM OPENQUERY( ADLDAP,'SELECT name FROM ''LDAP://myfirm01/ DC=myfirm,DC=com'' WHERE memberOf=''CN=Computer Services,CN=Users,DC=myfirm,DC=com''')

Есть ли способ как обойти?
Пытался заранее формировать сам кусок строки для запроса внутри OpenQuery через set @query=.... аналогично, не воспринимает никаких
 SELECT @groupname, name FROM OPENQUERY( ADLDAP,@query)
14 май 12, 21:59    [12553379]     Ответить | Цитировать Сообщить модератору
 Re: Формировать динамический запрос для OpenQuery? Возможно?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Alexander2
Пытался заранее формировать сам кусок строки для запроса внутри OpenQuery через set @query=.... аналогично, не воспринимает никаких

Придется формиромать _весь_ запрос динамически.
А не только его часть
14 май 12, 22:01    [12553385]     Ответить | Цитировать Сообщить модератору
 Re: Формировать динамический запрос для OpenQuery? Возможно?  [new]
Alexander2
Member

Откуда: Calgary
Сообщений: 1167
Glory,
то есть обернуть все в квери?! - чтобы потом выполнять
EXEC SP_EXECUTESQL @Query
14 май 12, 22:04    [12553407]     Ответить | Цитировать Сообщить модератору
 Re: Формировать динамический запрос для OpenQuery? Возможно?  [new]
Alexander2
Member

Откуда: Calgary
Сообщений: 1167
Glory,
все сделал - спасибо!
14 май 12, 22:27    [12553501]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить