将表从一个数据库复制到另一个数据库时,sql server 2008会锁定源表吗

将表从一个数据库复制到另一个数据库时,sql server 2008会锁定源表吗,sql,sql-server,database,Sql,Sql Server,Database,我有一个products表,在我们的生产数据库中有4200万条记录。 出于索引和备份目的,我们在同一个框中创建了另一个数据库,名为“ProductsDB” 如果我使用SSMS导入向导将products表的所有记录从DB1导入DB2,它会在DB1(生产)上创建任何锁或慢度吗 我不关心DB2(ProductsDB)的锁或慢,在我们调整代码之前,这些锁或慢是无法访问的 这不是一个有效的答案,但我的经验是: 因为我找不到我的问题的“确切”答案(我在网上搜索了很多),所以我冒险在这个表上使用了导入向导。

我有一个products表,在我们的生产数据库中有4200万条记录。 出于索引和备份目的,我们在同一个框中创建了另一个数据库,名为“ProductsDB”

如果我使用SSMS导入向导将products表的所有记录从DB1导入DB2,它会在DB1(生产)上创建任何锁或慢度吗

我不关心DB2(ProductsDB)的锁或慢,在我们调整代码之前,这些锁或慢是无法访问的


这不是一个有效的答案,但我的经验是:

因为我找不到我的问题的“确切”答案(我在网上搜索了很多),所以我冒险在这个表上使用了导入向导。完成此操作只花了不到5分钟的时间,在web服务器或数据库服务器上都没有注意到和性能/锁定问题

本次交易的缺点; -它没有创建任何主键 -它没有从源表创建任何现有索引

我需要再次创建它们,但仍然很好,这就是我想要的

希望这将有助于将来的参考,我将继续搜索它。

文章可能会对您有所帮助

其中一部分:

批量更新锁
批量更新(BU)锁用于将数据批量复制到表中,并且指定TABLOCK提示或使用sp_tableoption设置批量加载表上的表锁选项。大容量更新(BU)锁允许进程同时将数据大容量复制到同一个表中,同时阻止非大容量复制数据的其他进程访问该表。

文章可能会对您有所帮助

其中一部分:

批量更新锁
批量更新(BU)锁用于将数据批量复制到表中,并且指定TABLOCK提示或使用sp_tableoption设置批量加载表上的表锁选项。大容量更新(BU)锁允许进程将数据同时大容量复制到同一个表中,同时阻止非大容量复制数据的其他进程访问该表。

您可以利用来防止SQL Server对数据进行锁定。比如诺洛克

但请注意,这可能非常危险,因为您可能最终读取未提交的数据,这些数据随后会回滚;因此,要知道自己在做什么,并且要小心。

您可以利用来防止SQL Server锁定数据。比如诺洛克

但请注意,这可能非常危险,因为您可能最终读取未提交的数据,这些数据随后会回滚;所以要知道你在做什么,要小心