Использование MS SQL Server и поставщика Microsoft OLE DB для DB2 - Невозможно заставить работать схему по умолчанию - PullRequest
0 голосов
/ 05 марта 2020

У меня есть ссылка DB2, которую я настроил в MS SQL Server 2016 Enterprise edition, которая прекрасно работает, но мне нужно установить схему по умолчанию в соединении. Опция доступна в строке подключения, но она не работает.

exec master.dbo.sp_addlinkedserver 
    @server = N'MyDB2Link', 
    @srvproduct=N'Microsoft OLE DB Provider for DB2', 
    @provider=N'DB2OLEDB',
    @provstr=N'Initial Catalog=DB2Test;Data Source=Test;HostCCSID=1252;Network Address=10.1.1.11;Network Port=50000;Package Collection=NULLID;Default Schema=test1;', 
    @catalog=N'DB2'

Когда я запускаю это и добавляю себя через sp_addlinkedsrvlogin, я могу просто запросить данные:

select *
FROM OPENQUERY(MyDB2Link, 
'select * from test1.account fetch first 100 rows only for fetch only with ur')

, но если я удаляю test1, он не использует схему по умолчанию test1, вместо этого он использует мое имя пользователя, которое я и ожидал, если бы не было предоставлено никакой схемы по умолчанию:

OLE DB provider "DB2OLEDB" for linked server "MyDB2Link" returned message "sam.ACCOUNT IS AN UNDEFINED NAME SQLSTATE: 42704, SQLCODE: -204".

Так что любая идея, как заставить это работать ? Мы используем разные схемы в каждой среде, и я хотел бы установить их в соединении, а не в своем коде SQL, чтобы я мог перемещать неизмененный код между средами.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...