将表数据从表插入另一个表

时间:2012-11-27 13:58:26

标签: sql-server sql-server-2008

我正在尝试使用SQL Server 2008从一个数据库插入另一个数据库。

我正试图从'EG-COMPUTER1 \ FTLIVE'插入'EG-COMPUTER2 \ FTSTANDBY'。

基本上是从一台计算机上的数据库到同一网络上不同计算机上的同一数据库。

我怎么能这样做?

注意:我可以连接到同一台计算机上的两个数据库,因此必须有一种简单的方法从一个数据库插入另一个数据库?

EDIT ::

只是添加一台计算机正在使用SQL Server 2008-R2而另一台计算机正在使用SQL Server 2008

5 个答案:

答案 0 :(得分:2)

有几种方法可以做到这一点。

      1. RightClick On DataBase -> Tasks -> Import -> Import Export wizard ->Choose Source database -> choose Destination database -> choose Copy data from One or more table -> choose required tables -> Import.


     2.RighClick On Database -> Task -> Generate Script -> Choose tables -> Advanced -> Change "Types of Data to Script " to "Schema and Data or data or schema(as required)" -> Change "script Drop and Create" to Drop and Create(optional) - > create.
Copy the script file/files and run in the other computer.


     3.Right Click the database -> task -> BackUp -> create backup -> take the back up to other computer(.bak file can be found inside the Backup directory inside installation directory)  -> right click the database -> task -> restore   -> choose the bakup file -> done.


     4. Can use sql azure migration tool  http://sqlazuremw.codeplex.com/ (similar to step 1)

答案 1 :(得分:1)

如果您只想使用数据库级别的数据传输,则应将这两个实例配置为链接服务器(msdn doc)

否则,如果您熟悉Java(或任何提供API与数据库交互的高级语言),您可以编写一个简单的程序,从一个服务器中的表中检索数据并插入到另一个服务器的表中服务器(更快的方式,无需与DBA联系以配置链接服务器)。

答案 2 :(得分:1)

我找到了我需要做的事情,这是:

INSERT INTO [DatabaseNameA].[dbo].[Table]  
([Column1],[Column2] etc...)
SELECT 
[Column1],[Column2] etc...
 SET IDENTITY_INSERT [DatabaseNameB].[dbo].[Table] On;
GO

这将选择我想要选择的数据库,将identity_insert设置为on,这样就可以插入数据并将数据从一个数据库传输到另一个数据库。

答案 3 :(得分:0)

Nislva,

请使用您的登录信息验证两个表是否可访问。如果两个表都是可访问的,那么尝试将一个数据库表复制到另一个数据库表,否则从一个数据库表创建一个视图并将该视图传输到另一个数据库表。

在你完成所需的任务之后。这是最佳实践方法,将来也可能不会出现性能问题。

如果您没有兴趣执行此任务,那么只需按照以下查询

即可

插入ur-tablename(列名) select sourcedbname.schemaname.column-name1,sourcedbname2.schemaname.column-name ... 来自sourcedatabsename.schemaname.tablename

答案 4 :(得分:0)

如果这不是定期活动,您可以使用OpenRowSet,否则如果您需要经常执行操作,则应创建linked server