Sql server 生产服务器上的SQL ALTER表集(锁升级=表)

Sql server 生产服务器上的SQL ALTER表集(锁升级=表),sql-server,foreign-keys,Sql Server,Foreign Keys,我需要创建一个新表,该表带有Userstable的外键 Users表有200万条记录 当我在测试服务器上运行脚本时,它会锁定此表,并且测试用户无法在事务期间查询此表 查询开始时是这样的 BEGIN TRANSACTION GO ALTER TABLE dbo.Users SET (LOCK_ESCALATION = TABLE) GO COMMIT /*CREATE NEW TABLE AND FOREIGN KEYS HERE*/ 在不锁定的情况下,生产运行的安全方式是什么 我们是否应该将生

我需要创建一个新表,该表带有
Users
table的外键

Users表有200万条记录

当我在测试服务器上运行脚本时,它会锁定此表,并且测试用户无法在事务期间查询此表

查询开始时是这样的

BEGIN TRANSACTION
GO
ALTER TABLE dbo.Users SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
/*CREATE NEW TABLE AND FOREIGN KEYS HERE*/
在不锁定的情况下,生产运行的安全方式是什么


我们是否应该将生产服务器设置为“维护模式”,并在sql事务完成时重新设置为live?对于创建新表及其外键,甚至新表索引,您不需要锁定或设置引用表的锁升级(在您的情况下,是dbo.Users)。只是不运行上面的事务,只创建新表和外键

那代码毫无意义。代码有什么问题?我在下一个语句中添加了注释:“我需要创建一个新表,该表带有外键和“Users”表,所以只需创建它!这是SSMS生成的代码,所以如果我在GUI上进行更改并生成脚本,代码将是这样的。