我有两个数据库,一个叫做Natalie_playground
,另一个叫LiveDB
。 由于我想练习插入,更新的东西,我想复制一些从LiveDB
表Natalie_playground
表。SQL Server将表从一个数据库复制到另一个
我要复制的表称为: Customers, Computers, Cellphones, Prices
我试图做的是,(使用SSMS)右键单击一个表,但是没有复制在那里!
我有两个数据库,一个叫做Natalie_playground
,另一个叫LiveDB
。 由于我想练习插入,更新的东西,我想复制一些从LiveDB
表Natalie_playground
表。SQL Server将表从一个数据库复制到另一个
我要复制的表称为: Customers, Computers, Cellphones, Prices
我试图做的是,(使用SSMS)右键单击一个表,但是没有复制在那里!
假设你有两个数据库,例如,A和B:
如果目标表不存在,下面的脚本将创建(我不推荐这种方式):
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
如果目标表存在,那么:
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
注意:如果您想学习和练习此操作,可以使用以前的脚本,但是如果要将完整的结构和数据从数据库复制到另一个脚本,则应使用“备份和恢复数据库”或“使用脚本生成数据库数据“并将其运行到另一个数据库中。
你能做到这一点不选择字段名称是否明确? –
右键单击您的数据库 - >下任务选择生成脚本,按照向导,选择你的表格和选中该复选框,上面写着“脚本表数据”(或类似)产生它的SQL脚本并在其他数据库上执行它。
您还可以尝试SQL Server导入/导出向导。如果目标表已不存在,则在运行向导时会创建目标表。
退房MSDN更多细节http://msdn.microsoft.com/en-us/library/ms141209.aspx
可能是最简单和最不耗时的。 +1 – LegendaryDude
试试这个
USE TargetDatabase
GO
INSERT INTO dbo.TargetTable(field1, field2, field3)
SELECT field1, field2, field3
FROM SourceDatabase.dbo.SourceTable
WHERE (some condition)
我发现从其他博客的简单方法。希望这可能会有所帮助。
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
如果你只想复制表的模式,你可以添加一个虚假的条件中提到的查询结束。
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
试试这个:
如果目标表存在:
SELECT SourceTableAlias.*
INTO TargetDB.dbo.TargetTable
FROM SourceDB.dbo.SourceTable SourceTableAlias
如果目标表不存在:
INSERT INTO TargetDB.dbo.TargetTable
SELECT SourceTableAlias.*
FROM SourceDB.dbo.SourceTable SourceTableAlias
祝您好运!
在两个数据库中是否存在相同的表(具有相同的结构)?只有你想传递一个数据? –
[SQL Server 2008:将所有表的内容从一个数据库复制到另一个数据库]的可能的重复(http://stackoverflow.com/questions/4028104/sql-server-2008-copying-the-contents-of-all从一个数据库到另一个)和[如何将一个表从数据库复制到SQL Server中的另一个数据库/表](http://stackoverflow.com/q/187770/62576)它们列在你的问题右侧的“相关”列表中。 === >>>在发布一个新问题之前,请至少进行一次基本搜索,以查看它之前是否已被询问(并回答过)。谢谢。 –
@natalia,肯有理由,对于这个问题,通常答案已经存在。谢谢。 –