繁体   English   中英

在默认值以外的文件组上创建表

[英]Create a table on a filegroup other than the default

标题很清楚,我创建了一个新的文件组“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的位置以检查它是否包含表。

您可以使用此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

查看桌子的位置。

如果您从未将文件添加到文件组,那么我会发现错误,但您没有包含错误消息或任何说您创建文件的内容。 如果你没有,我建议从微软文档开始,如果需要的话。

OP发现有助于尝试在他的文件组中创建一个新文件。

您可以使用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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM