将SQL Server Express表迁移到SQL Server数据库
我有一个本地SQL Server Express数据库,我想复制到服务器上的SQL Server数据库。 我没有对服务器的完全权限,所以我不能直接附加它。 有人告诉我,我可以通过使用SqlBulkCopy
[MSDN]类来做到这一点。
我无法弄清楚如何使用它。 我没有做足够的数据库编程来熟悉这种事情是如何完成的。
基本上,我想将一个数据库中的所有表复制到另一个数据库中。 表之间存在关系,我不知道这是否会对复制产生影响。 没有太多,所以只复制数据然后手动重新分配关系并不是什么大问题。
这是我可以去的
var localDatabase = new SqlConnection("connection string"); var serverDatabase = new SqlConnection("other connection string"); SomehowCopyAllTables(localDatabase, serverDatabase);
但不幸的是,C#先生并不想承认SomehowCopyAllTables
方法的存在。
如何将所有表从一个数据库复制到另一个数据库?
在SQL Server Management Studio中使用SQL Server的Generate Scripts命令。
- 右键单击数据库; 任务 – >生成脚本
- 选择表格,单击“下一步”
- 单击“高级”按钮
- 查找脚本的数据类型 – 根据需要进行选择:是否包含数据。
- 然后,您可以选择保存到文件,或放入新的查询窗口。
- 导致在子弹2中选择的所有表数据的
INSERT
语句。 - 将新查询窗口中的输出复制/粘贴到目标服务器上。
从我的角度来看,最好的方法是在SQL Express中创建SQL脚本并在服务器上执行生成的脚本。 整个数据将被复制。
从Sql Server Management Studio生成数据库脚本:
- 右键单击数据库
- 选择任务 – >生成脚本
- (如果您获得介绍屏幕,请单击“下一步”)
- 选择“选择特定数据库对象”
- 选择对象来生成脚本(表,存储过程等……)
- 单击“下一步”,然后指定输出文件名
- 单击“完成”以生成脚本
这将仅生成模式。 如果您还要执行数据生成脚本,请在步骤6)中单击“高级”按钮并向下滚动到“脚本数据类型”,然后将其从“仅架构”更改为“仅数据”或“架构和数据”
简单地使用Atlantis Interactive的Schema Inspector和Data Inspector可能更容易,而不是自己编程。 只需将架构与当前系统上的空白数据库进行比较即可。