Freigeben über


Datenbankübergreifende Abfragen

In SQL Server 2014 unterstützen speicheroptimierte Tabellen keine datenbankübergreifenden Transaktionen. Sie können nicht über dieselbe Transaktion oder dieselbe Abfrage, die auch auf eine speicheroptimierte Tabelle zugreift, auf eine andere Datenbank zugreifen. Daten aus einer Tabelle in einer Datenbank können nicht einfach in eine speicheroptimierte Tabelle in einer anderen Datenbank kopiert werden.

Tabellenvariablen sind nicht transaktional. Daher können speicheroptimierte Tabellenvariablen in datenbankübergreifenden Abfragen verwendet werden und somit das Verschieben von Daten aus einer Datenbank in speicheroptimierte Tabellen in einer anderen erleichtern. Sie können zwei Transaktionen verwenden. Fügen Sie in der ersten Transaktion die Daten aus der Remotetabelle in die Variable ein. Fügen Sie in der zweiten Transaktion die Daten aus der Variablen in die lokale speicheroptimierte Tabelle ein.

Wenn Sie z. B. die Zeile aus Tabelle t1 in datenbank db1 in Tabelle t2 in db2 kopieren möchten, indem Sie die Variable @v1 des Typs "dbo.tt1" verwenden, können Sie folgendes verwenden:

USE db2   
GO   
DECLARE @v1 dbo.tt1   
INSERT @v1 SELECT * FROM db1.dbo.t1   
INSERT dbo.t2 SELECT * FROM @v1   
GO  

Siehe auch

Migrieren zu In-Memory OLTP