Есть ли способ предотвратить проверку SQL Server SQL в хранимой процедуре во время CREATE / ALTER - PullRequest
5 голосов
/ 26 сентября 2011

Один аспект нашей системы требует, чтобы наш экземпляр SQL Server взаимодействовал с MySQL Server через соединение с сервером.

MSSQL -> LinkedServer (поставщик ODBC MSDASQL) -> MySQL ODBC Connector -> MySQL DB

Таблица на связанном сервере вызывается в SPROC в соответствии с

CREATE PROCEDURE DoStuff
AS

SELECT a.ID, a.Name, b.OtherProperty
FROM   MyDatabase..MyTable a
JOIN   LINKSRVR...OtherTable b
ON     a.ID = b.ID

GO

Проблема заключается в том, что база данных MySQL находится в другой сети, доступной только через VPN, и что CREATE илиОператор ALTER не работает со следующей ошибкой, если VPN не активен.

The OLE DB provider "MSDASQL" for linked server "LINKSRVR" reported an error. 
 The provider did not give any information about the error.

Cannot initialize the data source object of OLE DB provider 
"MSDASQL" for linked server "LINKSRVR".

В любом случае можно ли заставить SQL Server просто пойти дальше и создать SPROC с SQL-кодом, который я говорю, и не пытаться проверять, еслиLinkedServer работает вверх / вниз.

1 Ответ

6 голосов
/ 26 сентября 2011

Вы должны были бы "скрыть" нарушающий SQL от компилятора, поместив его в строку и выполнив его как динамический SQL.

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