Gibt es eine Möglichkeit, SQL server vor der validation der SQL in einer gespeicherten Prozedur während CREATE / ALTER zu verhindern

Ein Aspekt unseres Systems erfordert, dass unsere SQL server-Instanz über eine verknüpfte serververbindung mit einem MySQL server kommuniziert.

MSSQL -> Linkedserver (MSDASQL ODBC Provider) -> MySQL ODBC Connector -> MySQL DB

Die Tabelle auf dem verknüpften server wird in einem SPROC entlang der Zeilen von aufgerufen

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 

Das Problem ist, dass die MySQL-database in einem anderen Netzwerk lebt, das nur von VPN zugänglich ist und dass die CREATE- oder ALTER-statement mit dem folgenden Fehler bricht, wenn das VPN nicht aktiv ist.

 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". 

Gibt es sowieso, um SQL server zu zwingen, einfach voran zu gehen und das SPROC mit dem SQL zu erstellen, das ich es sage und nicht zu versuchen und zu validieren, ob der Linkedserver auf / ab ist.

Du musst das beleidigende SQL aus dem Compiler "verstecken", indem du es in einen String platzierst und es als dynamisches SQL ausführe.