我在开发服务器上有一个小应用程序/站点,在SQL Server中有一个数据表[varchar(40),varchar(40),varchar(MAX)]。我想获取数据表并将其推送到实时服务器。我已尝试在txt,Excel和Access中导出,但每次导入时由于varchar(MAX)字段中的数据无法解析或unicode从Access进行非unicode转换而导致错误。
我觉得我在这里忽略了一个很好的解决方案。目前不需要自动化。我相信有办法在通过网络/互联网连接连接的数据库之间传输表格,但我们的办公室无法访问我们的实时数据库。我之前在MySQL中使用过数据导出创建了一个脚本,可以在另一个数据库上运行以插入所有数据记录,但我不相信它在MSSQL中可用。
有什么建议吗?
答案 0 :(得分:4)
您可以使用sql server备份和还原功能(details here)
如果要将备份限制为单个表(例如,因为数据库太大),可以将表放在自己的文件组中,并使用该文件组上的sql server备份功能。
如果您不知道文件组是什么,您会找到一些信息here
答案 1 :(得分:4)
我在MySQL中使用了数据导出 在此之前创建一个要运行的脚本 另一个插入所有数据的数据库 记录,但我不相信 在MSSQL中可用。
啊哈!基本上,您可以在Microsoft SQL中执行此操作。一个鲜为人知的Microsoft实用程序“SQL Server数据库发布向导”存在并完成您所说的内容。
为什么这不是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脚本,包括数据库创建和数据插入(如果需要)。
如果需要,请更新数据库名称,保存脚本,将其带到新服务器并执行。你已经完成了。