Создать таблицу в файловой группе, отличной от стандартной

Название достаточно ясно, я создал новую файловую группу "ArchiveFileGroup":

ALTER DATABASE MyDataBase
ADD FILEGROUP ArchiveFileGroup;
GO

Я хочу создать таблицу с именем: arc_myTable для хранения старых данных из этого: myTable

Я использовал следующий запрос:

CREATE TABLE [dbo].acr_myTable(
    [Id] [bigint] NOT NULL,
    [label] [nvarchar](max) NOT NULL,
)on ArchiveFileGroup 

Я не уверен, что это правильный путь, я не знаю, где создана FileGroup, чтобы проверить, содержит ли она таблицу.

3 ответа

Решение

Вы можете легко проверить с этим запросом sql:

SELECT o.[name], o.[type], i.[name], i.[index_id], f.[name]
FROM sys.indexes i
INNER JOIN sys.filegroups f
ON i.data_space_id = f.data_space_id
INNER JOIN sys.all_objects o
ON i.[object_id] = o.[object_id]
WHERE i.data_space_id = f.data_space_id
AND o.type = 'U' -- User Created Tables
GO

Просто добавь:

AND f.name = ArchiveFileGroup

чтобы увидеть все в вашей новой файловой группе или:

AND o.name = acr_myTable

чтобы увидеть, где находится ваш стол.

Если вы никогда не добавляете файл в свою файловую группу, то я ожидаю ошибки, но вы не включили ни сообщение об ошибке, ни что-либо, говорящее о том, что вы создали файл. Если вы этого не сделали, я предлагаю начать с документации Microsoft, если это необходимо.

ОП нашел это полезным, пытаясь создать новый файл в своей файловой группе.

Вы можете использовать sys.filegroups для просмотра всех созданных файловых групп на вашем сервере, например

SELECT *
FROM sys.filegroups

См. Здесь для получения дополнительной информации Список всех объектов, созданных во всех файловых группах

Это старый пост. Хотите добавить информацию, это может помочь кому-то в будущем.

sp_help <table_name>

Вы можете увидеть файловую группу, по которой создается таблица.

NB. Вы можете проверить, щелкнув правой кнопкой мыши по таблице, а затем выбрать свойства. в хранилище вы можете увидеть, к какой файловой группе принадлежит новая таблица

В вашем случае: он создаст таблицу в файловой группе по умолчанию, а не в новой созданной вами файловой группе. Файловая группа является логической и используется для создания вторичного файла. ех. Если вам нужно создать таблицу в другом месте, чем диск по умолчанию, вы должны определить fileName для новой файловой группы.

ALTER DATABASE [db] ADD FILEGROUP [NewFileGroup]

ALTER DATABASE [db] ADD FILE ( NAME = N'NewFile', FILENAME = N':D\..\Newfile.ndf' , SIZE = 8192KB , FILEGROWTH = 65536KB ) TO FILEGROUP [NewFileGroup]

ИДТИ

Другие вопросы по тегам