Error 1928

Severity

16

Message text

Version earlier than 15.0:

Cannot create clustered index on '%.*s' because it is partitioned.

Version 15.0 and later:

Cannot create clustered index '%.*s' on '%.*s' which has %d partitions because the maximum number of partitions allowed on a table with clustered index is %d.

Explanation

By default, Adaptive Server stores a heap table’s data in one doubly linked chain of database pages. Adaptive Server inserts all new rows into the last page of the chain. A transaction holds an exclusive lock on the last page while inserting new rows, which can block other, concurrent transactions from inserting into the table.

The partition clause of the alter table command allows you to partition user tables that do not have a clustered index. Partitioning creates additional page chains on the table, each with its own last page. This reduces page contention for concurrent inserts, and can also reduce I/O contention if the table exists on user-defined segments and is distributed over multiple physical devices.

Since clustered indexes are not allowed on partitioned tables, error 1928 occurs when you try to create a clustered index on a partitioned table.

Action

If you want to create a clustered index on the table, use the unpartition clause of the alter table command to concatenate all partitions:

1> alter table <table_name> unpartition
2> go

Then create your clustered index.

Additional information

Refer to the Reference Manual: Commands for information about the alter table command.

Versions in which this error is raised

All versions