Transact-SQL 参考

sp_indexoption

设置用户定义索引的选项值。

说明  Microsoft® SQL Server™ 自动从页级、行级或表级锁定中选择。不必人工设置这些选项。sp_indexoption 是为那些清楚地知道特定类型的锁适用于何种情况的专家级用户提供的。

语法

sp_indexoption [ @IndexNamePattern = ] 'index_name'
    ,
[ @OptionName = ] 'option_name'
    , [ @OptionValue = ] 'value'

参数

[@IndexNamePattern =] 'index_name'

用户定义的数据库表或索引的合格名称或不合格名称。如果指定单个索引或表名,则无需引号。即使提供了完全合格的名称(包括数据库名称),数据库名也必须是当前数据库的名称。如果给定的表名没有索引,则指定的选项值被设置为用于该表的所有索引。index_pattern 的数据类型为 nvarchar(1035),没有默认值。

[@OptionName =] 'option_name'

是索引选项名。option_name 的数据类型为 varchar (35),没有默认值。option_name 可以有下列值。

值    描述
AllowRowLocks 为 FALSE 时,不使用行级锁。使用页级锁和表级锁获得对指定索引的访问。
AllowPageLocks 为 FALSE 时,不使用页级锁。使用行级锁和表级锁获得对指定索引的访问。
DisAllowRowLocks 为 TRUE 时,不使用行级锁。使用页级锁和表级锁获得对指定索引的访问。
DisAllowPageLocks 为 TRUE 时,不使用页级锁。使用行级锁和表级锁获得对指定索引的访问。

[@OptionValue =] 'value'

指定是启用(TRUEon1)还是禁用(FALSEoff0option_name 设置。value 的数据类型为 varchar(12),没有默认值。

返回代码值

0(成功)或大于 0(失败)

注释

sp_indexoption 仅可用作设置用户定义索引的选项值。若要显示索引属性,请使用 INDEXPROPERTY。

权限

sysadmin 固定服务器角色成员、db_ownerdb_ddladmin 固定数据库角色的成员以及表所有者可以修改任何用户定义索引的 AllowRowLocks/DisAllowRowLocks AllowPageLocks/DisAllowPageLocks 选项。

其他用户只能修改自己拥有的表的选项。

示例

下面的示例禁用 Customers 表的 City 索引的页级锁。

USE Northwind
GO
EXEC sp_indexoption 'Customers.City', 
   'disallowpagelocks', 
   TRUE

请参见

INDEXPROPERTY

系统存储过程