2012-02-14 117 views
0

我有一个小问题。我的朋友有一个拥有超过10个表的数据库,每个表有90-100个记录。从SQL Server 2005 Express Edition导出记录

我找不到解决方法来从他的表中导出记录(将SQL文件放入类似于INSERT INTO .... VALUES ...的每个现有记录)以导入到我的数据库中。

如何做到这一点?

我想:右击一个表 - >Script Table as -> INSERT TO -> File ...

但它只生成INSERT声明。

有解决方案吗?或者此功能仅适用于商业版本?

UPDATE

您可以使用BCP命令,像这样

对于export命令提示符:bcp ADatabase.dbo.OneTable out d:\test\OneTable.bcp -c -Usa -Ppassword 对于进口:bcp ADatabase.dbo.OneTable in d:\test\OneTable.bcp -c -Usa -Ppassword

这些命令将创建一个包含记录指定的BCP文件表。你可以导入使用现有的BCP文件到另一个数据库

如果使用则远程数据库:

bcp ADatabaseRemote.dbo.OneTableRemote out d:\test\OneTableRemote.bcp -Slocalhost/SQLExpress -Usa -Ppassword 

相反的localhost/SQLExpress,您可以使用localhost或其他的服务器名称...

+0

你想获得一个文件导入到另一个数据库或只是有记录导出到一个平面文件或Excel或类似的东西? – Brian 2012-02-14 14:25:45

+0

只有记录是可能的或表结构但记录...问题的中间是如何导出这些记录,他们很多 – 2012-02-14 14:53:58

回答

1

也许最简单的这样做的方法是运行一个输出到文件的SELECT语句。然后您可以将该数据导入到数据库中。

对于简单的移动,我也做了手动复制/粘贴。有时最好在将Excel粘贴到新数据库之前将其用作临时平台。您可能需要在新数据库中创建一个与您正在粘贴的数据完全匹配的临时表。例如,我通常不会首先在临时表上放置一个PK,并使PK字段只是一个INT。这样副本会更平滑。

在企业界,您可以使用SSIS来移动这些数据。

+0

我更新了我的帖子,我使用了BCP命令。 – 2012-02-15 12:19:33

0

有几种方法可以做到这一点。一,从每个表中选择一切,并将结果保存为csv或分隔文件(您可以从sql管理工作室执行此操作)。您还可以将这些表编写为创建并将脚本复制到新数据库中,假设它也是一个sql服务器。然后为了导入,使用load infile语句。你可能不得不谷歌的SQL服务器的语法,但我知道这在MySQL和Oracle的作品。还没有在SQL Server中尝试过它。

LOAD DATA INFILE 'myfile' 
INTO TABLE stuff 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
SET id = NULL; 

或者如果你要去另一个sql server使用sql导入导入向导。

http://msdn.microsoft.com/en-us/library/ms141209.aspx

+0

我更新了我的主帖,看到你! – 2012-02-15 12:19:15

相关问题