在Sql Server 2005中为Create Table语句添加锁定选项

时间:2009-08-20 10:30:19

标签: sql sql-server sql-server-2005 sybase

我正忙于从Sybase数据库在Sql Server中创建表。在Sybase数据库中创建表时,使用了一个选项'lock allpages',如何在Sql Server 2005中创建表时复制它。

2 个答案:

答案 0 :(得分:1)

在SQL Server中,您无法为CREATE TABLE中的表指定锁定选项。您最多可以通过添加WITH ALLOW_ROW_LOCKS = OFFWITH ALLOW_PAGE_LOCKS_OFF来禁用行级和页级锁定。相当于在SQL Server中锁定整个表是在表上运行查询和更新时使用锁提示WITH (TABLOCK),但不建议这样做。

我的建议是在将表从Sybase传输到SQL Server时忽略此选项。

答案 1 :(得分:0)

使用此“锁定所有页面”选项,您希望实现什么目标?您正在进行的数据库是否正常运行?如果没有,在SQL Server中,您可以将对整个数据库的访问限制为单个用户:

ALTER DATABASE YourDatabaseName SET SINGLE_USER

这样你肯定没有其他人会以你的方式来捣乱直到你完全完成: - )

使用以下命令将其恢复为“正常”用法:

ALTER DATABASE YourDatabaseName SET MULTI_USER

马克