В настоящее время я выполняю процесс разделения файлов нашей базы данных на несколько меньших групп файлов базы данных в рамках обновления SQL.
Страницы, которые я читал, предлагают переместить кластерный индекс с помощью этого сценария.
CREATE CLUSTERED INDEX <name of the existing clustered index>
ON <Table_name> (<Column1, Column2,…>)
WITH (DROP_EXISTING=ON)
ON [<TargetFileName>]
Это не работает: The new index definition does not match the constraint being enforced by the existing index.
Навигация в SSMS на сервер> База данных> Таблицы> TableName> Ограничения показывает, что ограничений нет.
У меня естьЧтобы обойти эту проблему, перейдите на Сервер> База данных> Таблицы> Имя таблицы> Индексы, найдите Кластерный индекс, а затем Сценарий как DROP AND CREATE, что дает мне следующее:
USE [DatabaseName]
GO
/****** Object: Index [TableName$0] Script Date: 04/30/2019 11:01:06 ******/
IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[TableName]') AND name = N'TableName$0')
ALTER TABLE [dbo].[TableName] DROP CONSTRAINT [TableName$0]
GO
USE [DatabaseName]
GO
/****** Object: Index [TableName$0] Script Date: 04/30/2019 11:01:06 ******/
ALTER TABLE [dbo].[TableName] ADD CONSTRAINT [TableName$0] PRIMARY KEY CLUSTERED
(
[FieldName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [Data Filegroup 1]
GO
Я изменяю «ВКЛ [ДанныеFilegroup 1] "к моей новой Filegroup, и это работает.Все кажется хорошо, но я хочу проверить, что я в порядке, чтобы сделать это таким образом.