Ich habe eine Datenbank namens foo und eine Datenbank namens bar. Ich habe eine Tabelle in foo mit dem Namen tblFoobar, die ich von der Datenbank foo in die Datenbank bar verschieben möchte (Daten und alles). Wie lautet die SQL-Anweisung, um dies zu tun?
Antworten
Zu viele Anzeigen?Sie können auch die Assistent zum Generieren von SQL Server-Skripten um die Erstellung von SQL-Skripten zu unterstützen, die Folgendes leisten können:
- Kopieren des Tabellenschemas
- alle Beschränkungen (Identität, Standardwerte usw.)
- Daten innerhalb der Tabelle
- und viele andere Optionen, falls erforderlich
Gutes Beispiel für einen Arbeitsablauf SQL Server 2008 mit Bildschirmfotos gezeigt aquí .
Sie können wie folgt vorgehen: (ein allgemeines Beispiel)
insert into QualityAssuranceDB.dbo.Customers (columnA, ColumnB)
Select columnA, columnB from DeveloperDB.dbo.Customers
Auch wenn Sie die Spaltennamen generieren müssen, um sie in die Einfügeklausel einzufügen, verwenden Sie:
select (name + ',') as TableColumns from sys.columns
where object_id = object_id('YourTableName')
Kopieren Sie das Ergebnis und fügen Sie es in das Abfragefenster ein, um die Namen der Tabellenspalten darzustellen, und auch dies wird die Identitätsspalte ausschließen:
select (name + ',') as TableColumns from sys.columns
where object_id = object_id('YourTableName') and is_identity = 0
Denken Sie daran, dass das Skript zum Kopieren von Zeilen nur funktioniert, wenn sich die Datenbanken am selben Ort befinden.
Das können Sie versuchen.
select * into <Destination_table> from <Servername>.<DatabaseName>.dbo.<sourceTable>
Der Servername ist optional, wenn sich beide DB auf demselben Server befinden.
Ich gebe Ihnen drei Möglichkeiten:
Wenn es sich um zwei Datenbanken auf derselben Instanz handelt, tun Sie das:
SELECT * INTO My_New_Table FROM [HumanResources].[Department];
Wenn es sich um zwei Datenbanken auf verschiedenen Servern handelt und Sie verbundene Server haben, tun Sie das:
SELECT * INTO My_New_Table FROM [ServerName].[AdventureWorks2012].[HumanResources].[Department];
Wenn es sich um zwei Datenbanken auf verschiedenen Servern handelt und Sie keine verknüpften Server haben, tun Sie das:
SELECT * INTO My_New_Table
FROM OPENROWSET('SQLNCLI', 'Server=My_Remote_Server;Trusted_Connection=yes;',
'SELECT * FROM AdventureWorks2012.HumanResources.Department');
- See previous answers
- Weitere Antworten anzeigen