简体   繁体   中英

SQL Server Copying tables from one database to another

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!

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_A 
  • If 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.

右键单击数据库 - >在任务下选择生成脚本 ,按照向导,选择表并选中“脚本表数据” (或类似)的复选框,将其生成为SQL脚本并在其他数据库上执行。

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

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

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!

try this

USE TargetDatabase
GO

INSERT INTO dbo.TargetTable(field1, field2, field3)
SELECT field1, field2, field3
FROM SourceDatabase.dbo.SourceTable
WHERE (some condition)

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM