【问题标题】:Export records from SQL Server 2005 express edition从 SQL Server 2005 速成版导出记录
【发布时间】:2012-02-14 14:22:58
【问题描述】:

我有一个小问题。我朋友的数据库有 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 或其他服务器名称来代替localhost/SQLExpress...

【问题讨论】:

  • 您是想将文件导入到另一个数据库,还是将记录导出到平面文件或 Excel 或类似文件?
  • 只有可能的记录或表结构但有记录...问题的中间是如何导出这些记录很多

标签: sql sql-server-2005


【解决方案1】:

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

对于简单的动作,我还手动进行了复制/粘贴。有时最好在将 Excel 粘贴到新数据库之前将其用作暂存平台。您可能需要在新数据库中创建一个与您粘贴的数据完全匹配的临时表。例如,我通常不会一开始在 temp 表上放一个 PK,而使 PK 字段只是一个 INT。这样副本会更流畅。

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

【讨论】:

    【解决方案2】:

    有几种方法可以做到这一点。一,从每个表中选择所有内容并将结果保存为 csv 或分隔文件(您可以从 sql management studio 执行此操作)。您还可以将表编写为创建脚本并将脚本复制到新数据库,假设它也是一个 sql 服务器。然后对于导入使用 load infile 语句。您可能需要搜索 sql server 的语法,但我知道这适用于 mysql 和 oracle。还没有在sql server中尝试过。

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

    或者,如果您要使用另一个 sql 服务器,请使用 sql 导出导入向导。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多