設(shè)置用戶定義索引的選項(xiàng)值。
說(shuō)明 Microsoft® SQL Server™ 自動(dòng)從頁(yè)級(jí)、行級(jí)或表級(jí)鎖定中選擇。不必人工設(shè)置這些選項(xiàng)。sp_indexoption 是為那些清楚地知道特定類型的鎖適用于何種情況的專家級(jí)用戶提供的。
sp_indexoption [ @IndexNamePattern = ] 'index_name'
, [ @OptionName = ] 'option_name'
, [ @OptionValue = ] 'value'
[@IndexNamePattern =] 'index_name'
用戶定義的數(shù)據(jù)庫(kù)表或索引的合格名稱或不合格名稱。如果指定單個(gè)索引或表名,則無(wú)需引號(hào)。即使提供了完全合格的名稱(包括數(shù)據(jù)庫(kù)名稱),數(shù)據(jù)庫(kù)名也必須是當(dāng)前數(shù)據(jù)庫(kù)的名稱。如果給定的表名沒(méi)有索引,則指定的選項(xiàng)值被設(shè)置為用于該表的所有索引。index_pattern 的數(shù)據(jù)類型為 nvarchar(1035),沒(méi)有默認(rèn)值。
[@OptionName =] 'option_name'
是索引選項(xiàng)名。option_name 的數(shù)據(jù)類型為 varchar (35),沒(méi)有默認(rèn)值。option_name 可以有下列值。
值 | 描述 |
---|---|
AllowRowLocks | 為 FALSE 時(shí),不使用行級(jí)鎖。使用頁(yè)級(jí)鎖和表級(jí)鎖獲得對(duì)指定索引的訪問(wèn)。 |
AllowPageLocks | 為 FALSE 時(shí),不使用頁(yè)級(jí)鎖。使用行級(jí)鎖和表級(jí)鎖獲得對(duì)指定索引的訪問(wèn)。 |
DisAllowRowLocks | 為 TRUE 時(shí),不使用行級(jí)鎖。使用頁(yè)級(jí)鎖和表級(jí)鎖獲得對(duì)指定索引的訪問(wèn)。 |
DisAllowPageLocks | 為 TRUE 時(shí),不使用頁(yè)級(jí)鎖。使用行級(jí)鎖和表級(jí)鎖獲得對(duì)指定索引的訪問(wèn)。 |
[@OptionValue =] 'value'
指定是啟用(TRUE、on 或 1)還是禁用(FALSE、off 或 0)option_name 設(shè)置。value 的數(shù)據(jù)類型為 varchar(12),沒(méi)有默認(rèn)值。
0(成功)或大于 0(失敗)
sp_indexoption 僅可用作設(shè)置用戶定義索引的選項(xiàng)值。若要顯示索引屬性,請(qǐng)使用 INDEXPROPERTY。
sysadmin 固定服務(wù)器角色成員、db_owner 和 db_ddladmin 固定數(shù)據(jù)庫(kù)角色的成員以及表所有者可以修改任何用戶定義索引的 AllowRowLocks/DisAllowRowLocks 和 AllowPageLocks/DisAllowPageLocks 選項(xiàng)。
其他用戶只能修改自己擁有的表的選項(xiàng)。
下面的示例禁用 Customers 表的 City 索引的頁(yè)級(jí)鎖。
USE Northwind
GO
EXEC sp_indexoption 'Customers.City',
'disallowpagelocks',
TRUE
相關(guān)文章