将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 Server生成脚本数据

从我的角度来看,最好的方法是在SQL Express中创建SQL脚本并在服务器上执行生成的脚本。 整个数据将被复制。

从Sql Server Management Studio生成数据库脚本:

  1. 右键单击数据库
  2. 选择任务 – >生成脚本
  3. (如果您获得介绍屏幕,请单击“下一步”)
  4. 选择“选择特定数据库对象”
  5. 选择对象来生成脚本(表,存储过程等……)
  6. 单击“下一步”,然后指定输出文件名
  7. 单击“完成”以生成脚本

这将仅生成模式。 如果您还要执行数据生成脚本,请在步骤6)中单击“高级”按钮并向下滚动到“脚本数据类型”,然后将其从“仅架构”更改为“仅数据”或“架构和数据”

简单地使用Atlantis Interactive的Schema Inspector和Data Inspector可能更容易,而不是自己编程。 只需将架构与当前系统上的空白数据库进行比较即可。