Ich schreibe ein Skript, das um eine Reihe von Servern laufen soll und eine Reihe von Daten auswählen soll, einschließlich des lokalen Servers. Das SQL, das benötigt wird, um die benötigten Daten auszuwählen, ist ziemlich kompliziert, also schreibe ich eine Art Ad-hoc-Ansicht und benutze eine OPENQUERY-Anweisung, um die Daten zu bekommen, also schliesse ich mich endlos über eine Anweisung wie diese:Warum ist OPENQUERY auf einem lokalen Server schlecht?
exec('INSERT INTO tabl SELECT * FROM OPENQUERY(@Server, @AdHocView)')
Allerdings habe ich gehört, dass die Verwendung von OPENQUERY auf dem lokalen Server ist verpönt. Könnte jemand näher erläutern, warum?
Dies ist ein Verwaltungsskript, also mache ich mir keine Sorgen um Berechtigungen. Meine Frage ist, gibt es irgendwelche Bedenken, wenn das Skript eine Schleife über die Liste der Server und läuft auf seinen eigenen Server-Namen? Dies führt in der Regel zu einem Fehler, der Server ist nicht für den Datenzugriff konfiguriert. Dieser Fehler kann behoben werden. EXEC sp_serveroption 'LocalServer', 'DATA ACCESS', TRUE – Dlongnecker
überprüfen [Verbindungsserver] (http://msdn.microsoft.com/de-de us/library/ms188279.aspx) – Andrey