Angenommen, ich habe diese AbfrageWie OPENROWSET Arbeit mit sp_MSforeachdb
declare @sql varchar(max)
SET @sql = 'USE [?];
insert into table
SELECT *
FROM OPENROWSET(''SQLNCLI'',
''Server=SERBERNAME;Trusted_Connection=yes;'',
''SET FMTONLY OFF; SET NOCOUNT ON; exec db_name().dbo.sp_procedure''
) '
EXEC sp_MSforeachdb @sql
machen, wie Sie sp_MSforeachdb
wissen verwendet wird Verfahren unter allen DBs zu laufen. Im obigen Problem, aus vielen Gründen, habe ich verwenden OPENROWSET
.
Aber, in OPENROWSET
, müssen Sie DB-Namen angeben, damit es richtig ausgeführt wird. Wie kann ich über jede einzelne db arbeiten (irgendwie ausnutzen db_name()
)?
Derzeit Fehler ist:
OLE DB-Provider "SQLNCLI10" für den Verbindungsserver "(null)" zurückgegeben Meldung "Latente können vorbereiten nicht abgeschlossen werden.".
/Sie versuchen dann in einem Server alle Datenbanken in einer Schleife, warum Sie OpenRowset brauchen? –
@KannanKandasamy, gerade aktualisiert Post. Ich möchte in Tabelle Sachen von SP einfügen. Wenn ich..exec einfüge, wird der Fehler ausgegeben, dass die verschachtelte insert..exec nicht ausgeführt werden kann. Also, ich versuche OPENROWSET hier – Sher