Безопасно ли удалять и создавать кластерные индексы для перемещения таблиц в новую файловую группу данных? - PullRequest
0 голосов
/ 30 апреля 2019

В настоящее время я выполняю процесс разделения файлов нашей базы данных на несколько меньших групп файлов базы данных в рамках обновления 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, и это работает.Все кажется хорошо, но я хочу проверить, что я в порядке, чтобы сделать это таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...