ON [CommonData]
определяет файловую группу , используемую для физического хранения данных.
Синтаксис, который вы используете в вопросе, определяет его как для кластеризованного индекса, так и для таблицы. Однако на самом деле это не две отдельные сущности. Кластерный индекс - это таблица.
Вы можете опустить любой из них, и вы получите тот же результат. Таблица создается как кластеризованный индекс в файловой группе CommonData
, и любые некластеризованные индексы в таблице создаются в этой файловой группе, если явно не указано иное.
т.е. Обе попытки ниже возвращают одинаковые результаты
+--------------+------------+
| name | name |
+--------------+------------+
| PK_Some_name | CommonData |
| ix_field3 | CommonData |
| ix_field2 | CommonData |
+--------------+------------+
drop TABLE if exists dbo.table_name
go
CREATE TABLE dbo.[table_name] (
[field1] [int] not null,
[field2] [int] not null,
[field3] [int] not null INDEX ix_field3, /*Not specifying filegroup*/
CONSTRAINT [PK_Some_name] PRIMARY KEY CLUSTERED ([field1] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
) ON CommonData
CREATE INDEX ix_field2 ON dbo.[table_name]([field2]) /*Not specifying filegroup*/
SELECT i.name, ds.name
FROM sys.indexes i
JOIN sys.data_spaces ds on ds.data_space_id = i.data_space_id
WHERE object_id = object_id('dbo.table_name')
GO
drop TABLE if exists dbo.table_name
go
CREATE TABLE dbo.[table_name] (
[field1] [int] not null,
[field2] [int] not null,
[field3] [int] not null INDEX ix_field3, /*Not specifying filegroup*/
CONSTRAINT [PK_Some_name] PRIMARY KEY CLUSTERED ([field1] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON CommonData
)
CREATE INDEX ix_field2 ON dbo.[table_name]([field2]) /*Not specifying filegroup*/
SELECT i.name, ds.name
FROM sys.indexes i
JOIN sys.data_spaces ds on ds.data_space_id = i.data_space_id
where object_id = object_id('dbo.table_name')