从SQL Server 2005 Express版本导出记录

时间:2012-02-14 14:22:58

标签: sql sql-server-2005

我有点问题。我的朋友有一个包含10多个表的数据库,每个表有超过90-100个记录。

我无法找到一种解决方法来导出记录(为这样的SQL文件输入每个现有记录的INSERT INTO .... VALUES ...),从他的表中导入我的数据库。

怎么做?

我试过:右键点击表格 - > Script Table as -> INSERT TO -> File ...

但它只生成INSERT语句。

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

更新

您可以像这样使用命令提示符使用BCP命令

出口: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

2 个答案:

答案 0 :(得分:1)

执行此操作的最简单方法可能是运行输出到文件的SELECT语句。然后,您可以将该数据导入数据库。

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

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

答案 1 :(得分:0)

你可以通过几种方式做到这一点。一,从每个表中选择所有内容并将结果保存为csv或分隔文件(您可以从sql management studio执行此操作)。您还可以将表脚本编写为创建脚本并将脚本复制到新数据库,假设它也是一个SQL Server。然后导入使用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 export import wizard。

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