Sets option values for user-defined indexes.
Note Microsoft® SQL Server™ automatically makes choices of page-, row-, or table-level locking. It is not necessary to set these options manually. sp_indexoption is provided for expert users who know with certainty that a particular type of lock is always appropriate.
sp_indexoption [ @IndexNamePattern = ] 'index_name'
, [ @OptionName = ] 'option_name'
, [ @OptionValue = ] 'value'
[@IndexNamePattern =] 'index_name'
Is the qualified or nonqualified name of a user-defined database table or index. Quotation marks are not necessary if a single index or table name is specified. Even if a fully qualified table name, including a database name, is provided, the database name must be the name of the current database. If a table name is given with no index, the specified option value is set for all indexes on that table. index_pattern is nvarchar(1035), with no default.
[@OptionName =] 'option_name'
Is an index option name. option_name is varchar(35), with no default. option_name can have these values.
Value | Description |
---|---|
AllowRowLocks | When FALSE, row locks are not used. Access to the specified indexes is obtained using page- and table-level locks. |
AllowPageLocks | When FALSE, page locks are not used. Access to the specified indexes is obtained using row- and table-level locks. |
DisAllowRowLocks | When TRUE, row locks are not used. Access to the specified indexes is obtained using page- and table-level locks. |
DisAllowPageLocks | When TRUE, page locks are not used. Access to the specified indexes is obtained using row- and table-level locks. |
[@OptionValue =] 'value'
Specifies whether the option_name setting is enabled (TRUE, on, or 1) or disabled (FALSE, off, or 0). value is varchar(12), with no default.
0 (success) or greater than 0 (failure)
sp_indexoption can be used only to set option values for user-defined indexes. To display index properties, use INDEXPROPERTY.
Members of the sysadmin fixed server role, the db_owner and db_ddladmin fixed database roles, and the table owner can modify the AllowRowLocks/DisAllowRowLocks and AllowPageLocks/DisAllowPageLocks options for any user-defined indexes.
Other users can modify options only for tables they own.
This example disallows page locks on the City index on the Customers table.
USE Northwind
GO
EXEC sp_indexoption 'Customers.City',
'disallowpagelocks',
TRUE