问题
I have two databases, one is called Natalie_playground and one is called LiveDB.
Since I want to practice insert, update things, I want to copy some of the tables from the LiveDB to Natalie_playground.
The tables I want to copy are called:
Customers, Computers, Cellphones, Prices
What I tried to do is that (using SSMS) right click on a table but there is no Copy in there!
回答1:
Assuming that you have two databases, for example A and B:
If target table not exists, the following script will create (I do not recommend this way):
SELECT table_A.FIELD_1, table_A.FIELD_2,......, table_A.FIELD_N INTO COPY_TABLE_HERE FROM A.dbo.table_from_A table_AIf target table exists, then:
INSERT INTO TABLE_TARGET SELECT table_A.FIELD_1, table_A.FIELD_2,......, table_A.FIELD_N FROM A.dbo.table_from_A table_A
Note: if you want learn and practice this, you can use previous scripts, but if you want copy the complete structure and data from database to another, you should use, "Backup and restore Database" or, "Generate Script Database with data" and run this into another database.
回答2:
Right click on your database -> under Tasks choose Generate scripts, follow the wizard, choose your tables and check the check box that says 'script table data' (or similar) generate it to an SQL script and execute it on your other DB.
回答3:
You can also try SQL Server Import/Export wizard. If target tables do not exist already they will be created when you run the wizard.
Check out MSDN for more details http://msdn.microsoft.com/en-us/library/ms141209.aspx
回答4:
I found an easy way from other blog. Hope this might be helpful.
Select * into DestinationDB.dbo.tableName from SourceDB.dbo.SourceTable
http://www.codeproject.com/Tips/664327/Copy-Table-Schema-and-Data-From-One-Database-to-An
回答5:
Try this:
If target table is exists :
SELECT SourceTableAlias.*
INTO TargetDB.dbo.TargetTable
FROM SourceDB.dbo.SourceTable SourceTableAlias
And if target table is not exists :
INSERT INTO TargetDB.dbo.TargetTable
SELECT SourceTableAlias.*
FROM SourceDB.dbo.SourceTable SourceTableAlias
Good Luck!
回答6:
If you want to copy only the schema of tables, you can add a false condition to the end of mentioned queries.
ex.
SELECT table_A.FIELD_1, ..., table_A.FIELD_N
INTO LiveDB.custom_table
FROM Natalie_playground.dbo.custom_table table_A
WHERE 0 > 1
回答7:
try this
USE TargetDatabase
GO
INSERT INTO dbo.TargetTable(field1, field2, field3)
SELECT field1, field2, field3
FROM SourceDatabase.dbo.SourceTable
WHERE (some condition)
来源:https://stackoverflow.com/questions/17582957/sql-server-copying-tables-from-one-database-to-another