Мне нужен способ автоматического перемещения кластерных индексов в одну файловую группу: ClusteredFilegroup и все некластеризованные индексы в другую файловую группу NonClusteredFilegroup при создании DDL. У нас есть профиль публикации sql, который создает подобный скрипт ниже каждого еженедельного развертывания Как использовать PowerShell для этого?
Я бы хотел, чтобы powershell добавил слова
ON [ClusteredFilegroup]
после каждого создания таблицы
или ON [NonClusteredFilegroup]
для каждого некластеризованного индекса.
Powershell должен уметь читать оригинальный скрипт (testscript.sql) и запускать на нем редактирование текста.
Оригинальный сценарий:
GO
CREATE TABLE [dbo].[Dim_Product] (
[DimProductId] INT IDENTITY (1, 1) NOT NULL,
[ProductName] VARCHAR(64) NOT NULL,
[ProductDescription] VARCHAR(64) NOT NULL,
[BeginDate] DATETIME NOT NULL,
[EndDate] DATETIME NOT NULL,
CONSTRAINT [PK_DimProductId] PRIMARY KEY CLUSTERED ([DimProductId] ASC)
);
GO
CREATE NONCLUSTERED INDEX [NCX_Product_ProductName]
ON [dbo].[Dim_Product]([ProductName] ASC);
GO
CREATE NONCLUSTERED INDEX [NCX_Product_BeginDate]
ON [dbo].[Dim_Product]([BeginDate] ASC);
GO
CREATE TABLE [dbo].[Dim_Customer] (
[DimCustomertId] INT IDENTITY (1, 1) NOT NULL,
[CustomerName] VARCHAR(64) NOT NULL,
[CustomerDescription] VARCHAR(64) NOT NULL,
[BeginDate] DATETIME NOT NULL,
[EndDate] DATETIME NOT NULL,
CONSTRAINT [PK_DimCustomerId] PRIMARY KEY CLUSTERED ([DimCustomerId] ASC)
);
GO
CREATE NONCLUSTERED INDEX [NCX_Customer_CustomerName]
ON [dbo].[Dim_Customer]([CustomerName] ASC);
GO
CREATE NONCLUSTERED INDEX [NCX_Customer_BeginDate]
ON [dbo].[Dim_Customer]([BeginDate] ASC);
Цель:
CREATE TABLE [dbo].[Dim_Product] (
[DimProductId] INT IDENTITY (1, 1) NOT NULL,
[ProductName] VARCHAR(64) NOT NULL,
[ProductDescription] VARCHAR(64) NOT NULL,
[BeginDate] DATETIME NOT NULL,
[EndDate] DATETIME NOT NULL,
CONSTRAINT [PK_DimProductId] PRIMARY KEY CLUSTERED ([DimProductId] ASC)
) ON [ClusteredFilegroup];
GO
CREATE NONCLUSTERED INDEX [NCX_Product_ProductName]
ON [dbo].[Dim_Product]([ProductName] ASC) ON [NonClusteredFilegroup];
Я пытаюсь исследовать следующие сценарии:
Добавление текста к каждой строке в текстовом файле с помощью PowerShell
Поиск в текстовом файле определенного слова, если найдено, скопировать всю строку в новый файл в powershell
https://dba.stackexchange.com/questions/229380/automatically-have-nonclustered-indexes-in-a-different-filegroup/229382#229382