Добавление файловой группы при создании базы данных на SQL 2014
Привет,
у меня есть клиент, который пытается принудительно использовать файловые группы при создании новых баз данных. Поскольку администратор не создает базу данных и выполняется сторонним программным обеспечением с помощью команды "создать базу данных", у нас нет возможности применить ее.
Мы попробовали мониторинг сервера tigger для команды create database, но затем обнаружили, что вы не можете изменить базу данных из-за того, что она находится в триггере или в транзакции с несколькими операторами.
Я действительно играл с идеей программно добавить шаг к заданию из триггера сервера, который будет запускаться через несколько секунд, но не уверен, что это сработает,
учитывая, что SQL server сильно использует файловые группы, я удивлен, что нет более простого способа настроить это, по крайней мере, я не вижу.
Таким образом, по существу, когда выполняется команда "создать базу данных", мы хотели бы добавить файловую группу с несколькими файлами на разных дисках.
Я построил ниже который работает когда я запускаю его после создания базы данных однако это требует постоянного администратора int база данных создается ?y как это сделать при создании базы данных ?
Ценю любую помощь, которую вы можете оказать.
Что я уже пробовал:
Вот код для создания файловой группы (обратите внимание, что это не конечный продукт, а просто тестовый, который мы разработали для тестирования дисков и т. д.
SET @SQL = ' USE master ALTER DATABASE ' + @DatabaseName + ' ADD FILEGROUP FG_' + @DatabaseName + '; BEGIN TRANSACTION ALTER DATABASE ' + @DatabaseName + ' ADD FILE ( NAME = FGF_' + @DatabaseName + '_1, FILENAME = ''F:\SQLDATA\FGF_' + @DatabaseName + '_1.ndf'', SIZE = 50MB, FILEGROWTH = 50MB ), ( NAME = FGF_' + @DatabaseName + '_2, FILENAME = ''G:\SQLDATA\FGF_' + @DatabaseName + '_2.ndf'', SIZE = 50MB, FILEGROWTH = 50MB ), ( NAME = FGF_' + @DatabaseName + '_3, FILENAME = ''H:\SQLDATA\FGF_' + @DatabaseName + '_3.ndf'', SIZE = 50MB, FILEGROWTH = 50MB ), ( NAME = FGF_' + @DatabaseName + '_4, FILENAME = ''I:\SQLDATA\FGF_' + @DatabaseName + '_4.ndf'', SIZE = 50MB, FILEGROWTH = 50MB ), ( NAME = FGF_' + @DatabaseName + '_5, FILENAME = ''J:\SQLDATA\FGF_' + @DatabaseName + '_5.ndf'', SIZE = 50MB, FILEGROWTH = 50MB ), ( NAME = FGF_' + @DatabaseName + '_6, FILENAME = ''K:\SQLDATA\FGF_' + @DatabaseName + '_6.ndf'', SIZE = 50MB, FILEGROWTH = 50MB ), ( NAME = FGF_' + @DatabaseName + '_7, FILENAME = ''L:\SQLDATA\FGF_' + @DatabaseName + '_7.ndf'', SIZE = 50MB, FILEGROWTH = 50MB ) TO FILEGROUP FG_' + @DatabaseName + '; '; EXEC (@SQL);