-2

我想指定一个特定的文件或文件组来保存数据库中的特定表。我怎样才能做到这一点?

4

1 回答 1

2

你需要更具体。您可以通过以下方式确定数据库中可用的数据文件:

SELECT name, physical_name, state_desc, size, max_size, is_read_only
  FROM databasename.sys.database_files  
  WHERE type_desc = 'ROWS';

您可以在此处查看文件组:

SELECT name, type_desc, is_read_only 
  FROM sys.filegroups;

但是,您如何定性地选择一个用于创建新表的目标?<shrug>- 取决于你想如何决定,我们不知道。您可以使用此连接确定更多定性信息:

SELECT FileGroupName = fg.name, FileGroupType = fg.type_desc, 
    FileGroupReadOnly = fg.is_read_only, 
    [FileName] = f.name, [FileLocation] = f.physical_name, 
    [FileState] = f.state_desc, f.size, f.max_size, 
    FileReadOnly = f.is_read_only
FROM sys.filegroups AS fg
LEFT OUTER JOIN sys.database_files AS f
ON fg.data_space_id = f.data_space_id
ORDER BY fg.data_space_id;

这将向您显示每个文件组中的文件、它们的状态/位置/大小,并且还会显示您何时有未使用的文件组(这些行的所有文件列都将为 NULL)。因此,这些详细信息可以帮助您确定要指定的文件组。

当您决定使用哪个文件组时,您可以说:

CREATE TABLE dbo.foo(...) ON FileGroupName;

您可以在此处查看完整的语法CREATE TABLE。您没有指定版本,因此您可能必须从“其他版本”下拉列表中选择适当的选项。

于 2012-04-12T16:25:36.983 回答