在将表导出/导入到另一个数据库SQL Server时修改表行

时间:2019-02-04 04:31:19

标签: sql-server database ssms

我的生产数据库有问题,所以我想在开发数据库上重现该问题。我使用的DBMS是SQL Server 2016(SP1)

为重现该错误,我正在使用SQL Server Management Studio中的“导出”将所有数据复制到开发数据库中。

生产数据库正在运行,并且用户仍在使用该数据库,因此在我导出数据时将插入,更新甚至删除行

  • 在我导出数据时,对修改后的行(插入,更新甚至删除)会发生什么情况。它将导出到我的开发数据库中吗?为什么呢,例如SQL Server如何处理这样的事情?

  • 将生产数据库迁移到开发数据库的好方法是什么?

  • 还有一个极端的问题,如果在导出过程中修改表列会发生什么?

编辑: 我需要提及的是,生产环境中的DBMS版本高于开发环境,因此我无法使用备份/还原来移动数据库

1 个答案:

答案 0 :(得分:2)

  

将生产数据库转移到开发中的好方法是什么   数据库

您应该backup在生产服务器上restore在开发服务器上。 这不会阻止用户在产品上进行活动

  

修改后的行会发生什么(插入,更新甚至删除)   当我导出数据时。

如果您的insert / update是并发的,但是读取过程已经放在表上,则您的更改将被阻止。反之亦然,如果任何DML已在同一行上启动,则读取过程将等待,直到提交/回滚修改。

  

最极端的是,如果在修改表列的同时   出口正在进行中吗?

正在读取Sch-S锁在表上时,因此在释放此锁之前无法进行任何列修改。