Powershell не обрабатывает отфильтрованные индексы - PullRequest
0 голосов
/ 02 января 2012

Я пытаюсь записать свои определения базы данных (таблицы, индексы, триггеры, ...) с powershell в файлы .sql.До сих пор это работало хорошо.

Недавно мы начали использовать отфильтрованные индексы в нашей базе данных SQL Server 2008.Эти индексы пишутся без предложения WHERE.

Если я пытаюсь сгенерировать сценарий в MS SQL Server Management Studio

, либо щелкнув правой кнопкой мыши на index - script as - create index "или «задачи - генерировать сценарии»

это работает.

Я прочитал несколько сообщений об ошибках, касающихся фильтруемых индексов, здесь https://sqlblog.org/2011/05/16/connect-digest-2011-05-16, но я не уверен, применимы ли онимоя проблема.

Любой совет?

1 Ответ

0 голосов
/ 02 января 2012

Скрипты отфильтрованных индексов прекрасно работают для меня. Вот некоторый тестовый код, который вы можете попробовать:

Создание отфильтрованного индекса с помощью Adventworks (из примера BOL):

USE AdventureWorks2008R2;
GO
IF EXISTS (SELECT name FROM sys.indexes
    WHERE name = N'FIBillOfMaterialsWithEndDate' 
    AND object_id = OBJECT_ID(N'Production.BillOfMaterials'))
DROP INDEX FIBillOfMaterialsWithEndDate
    ON Production.BillOfMaterials;
GO
CREATE NONCLUSTERED INDEX "FIBillOfMaterialsWithEndDate"
    ON Production.BillOfMaterials (ComponentID, StartDate)
    WHERE EndDate IS NOT NULL;
GO

Используя sqlps, перейдите к контейнеру индекса для таблицы Production.BillOfMaterials:

cd SQLSERVER:\SQL\WIN7BOOT\SQL1\Databases\AdventureWorks\Tables\Production.BillOfMaterials\indexes

Получите индекс FIBillOfMaterialsWithEndDate и выполните его сценарий:

get-item FIBillOfMaterialsWithEndDate | foreach {$_.script()};
CREATE NONCLUSTERED INDEX [FIBillOfMaterialsWithEndDate] ON [Production].[BillOfMaterials]
(
        [ComponentID] ASC,
        [StartDate] ASC
)
WHERE ([EndDate] IS NOT NULL)
WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF,
 ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...