【问题标题】:What is easiest way to transfer tables between MSSQL databases without a network connection?在没有网络连接的情况下在 SQL 数据库之间传输表的最简单方法是什么?
【发布时间】:2008-12-23 16:53:56
【问题描述】:

我在开发服务器上有一个小型应用程序/站点,在 SQL Server [varchar(40),varchar(40),varchar(MAX)] 中有一个数据表。我想获取数据表并将其推送到实时服务器。我曾尝试在 txt、Excel 和 Access 中导出,但每次导入时都会出现与无法解析相关的错误,因为 varchar(MAX) 字段中的数据或 unicode 从 Access 转换为非 unicode。

我觉得我在这里忽略了一个很好的解决方案。目前不需要自动化。我相信有办法在通过网络/互联网连接连接的数据库之间传输表,但我们的办公室无法访问我们的实时数据库。我之前在 MySQL 中使用过数据导出,它创建了一个在另一个数据库上运行的脚本来插入所有数据记录,但我认为 MSSQL 中不可用。

有什么建议吗?

【问题讨论】:

    标签: sql-server database


    【解决方案1】:

    我在 MySQL 中使用了数据导出 在此之前创建一个要运行的脚本 另一个数据库插入所有数据 记录,但我不相信那是 在 MSSQL 中可用。

    啊哈!基本上,您可以在 Microsoft SQL 中执行此操作。存在一个鲜为人知的 Microsoft 实用程序“SQL Server 数据库发布向导”,它可以执行您所说的操作。

    http://www.microsoft.com/downloads/details.aspx?familyid=56E5B1C5-BF17-42E0-A410-371A838E570A&displaylang=en

    为什么这不是 SQL Server 的标准部分,我不知道。

    【讨论】:

    • 几个月前我寻找过这样的工具,但一无所获。我看到很多关于人们创建自己的工具的讨论,但官方向导从未出现在我的雷达上。非常感谢。
    • 从未听说过。我觉得……我明天会检查它是否允许部分脚本/数据过滤选项。谢谢
    • 几乎每个人,尤其是我自己,在发现这个工具时似乎都有同样的反应。
    • 谢谢,在我尝试获取多个 SP、脚本和其他应用程序来执行此操作失败后,我距离编写自己的应用程序大约 5 分钟。然后我想,让我搜索一下。你的回答为我节省了大量时间和头痛。为什么这不包含在 Management Studio 中。为什么这么难找?
    【解决方案2】:

    您可以使用 sql server 备份和恢复功能 (details here)

    如果你想将备份限制在单个表(例如数据库太大),你可以将你的表放在自己的文件组中,并在该文件组上使用 sql server 的备份功能。

    如果你不知道什么是文件组,你会发现一些信息here

    【讨论】:

      【解决方案3】:

      我会以原始格式将其 BCP 输出,然后再将其 bcp 输入。这是来自记忆,但语法是这样的:

      BCP MyTable OUT MyTable.dat -n -Usqlusername -Psqlpassword -Ssqlservername

      然后再把它拿回来。

      BCP MyTable IN MyTable.dat -n -Usqlusername -Psqlpassword -Ssqlservername

      【讨论】:

        【解决方案4】:

        您可以使用EMS 之类的工具。它将为您生成一个 SQL 脚本,包括创建数据库以及根据要求插入数据。

        如果需要,更新数据库名称,保存脚本,把它带到你的新服务器上,然后执行它。你已经完成了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-10-05
          • 1970-01-01
          • 2016-12-28
          • 1970-01-01
          • 2011-03-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多