没有网络连接在MSSQL数据库之间传输表的最简单方法是什么?

时间:2008-12-23 16:53:57

标签: sql-server database

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

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

有什么建议吗?

4 个答案:

答案 0 :(得分:4)

您可以使用sql server备份和还原功能(details here

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

如果您不知道文件组是什么,您会找到一些信息here

答案 1 :(得分:4)

  

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

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

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

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

答案 2 :(得分:2)

我会以原生格式BCP,然后再次bcp它。这是来自内存,但语法是这样的:

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

然后重新开始。

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

答案 3 :(得分:1)

您可以使用EMS之类的工具。它将为您生成一个SQL脚本,包括数据库创建和数据插入(如果需要)。

如果需要,请更新数据库名称,保存脚本,将其带到新服务器并执行。你已经完成了。