0

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

我正在尝试从“EG-COMPUTER1\FTLIVE”插入到“EG-COMPUTER2\FTSTANDBY”。

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

我怎么能做到这一点?

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

编辑::

只是补充一下,一台计算机正在使用 SQL Server 2008-R2,另一台计算机正在使用 SQL Server 2008

4

5 回答 5

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)
于 2012-11-27T14:14:48.603 回答
1

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

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

于 2012-11-27T14:02:55.653 回答
1

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

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

这将选择我要从中选择的数据库,打开 identity_insert 以便可以插入数据并将数据从一个数据库传输到另一个数据库。

于 2012-11-27T15:31:47.920 回答
0

如果这不是经常性活动,您可以使用OpenRowSet ,否则如果您需要经常执行操作,那么您应该创建链接服务器

于 2012-11-27T14:56:43.130 回答
0

尼斯瓦

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

在那里你可以完成你需要的任务。这是最佳实践方法,将来您也可能不会遇到性能问题。

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

插入 ur-tablename(column-names) select sourcedbname.schemaname.column-name1 , sourcedbname2.schemaname.column-name ... from sourcedatabsename.schemaname.tablename

于 2012-11-27T14:49:43.500 回答