У меня есть ссылка 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, чтобы я мог перемещать неизмененный код между средами.
Спасибо