标题很清楚,我创建了一个新的文件组“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的位置以检查它是否包含该表。
答案 0 :(得分:5)
您可以轻松查看此sql query:
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 documentation开始,如果需要的话。
OP发现this有助于尝试在其文件组中创建新文件。
答案 1 :(得分:2)
您可以使用sys.filegroups查看服务器中所有已创建的文件组,例如
SELECT *
FROM sys.filegroups
答案 2 :(得分:0)
这是老帖子。想要添加信息,它可能在将来帮助某人。
sp_help <table_name>
您可以看到创建表的文件组。
答案 3 :(得分:0)
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]
GO