日期:2014-05-18  浏览次数:20595 次

有人知道这个On[Data] 什么意思么?
在使用SQL2008 生成Create table sql时有如下脚本

SQL code

CREATE TABLE [dbo].[TableName](
    [StudentNumber] [nvarchar](50) NOT NULL,
    [MM] [char](6) NULL,
    [GG] [int] NULL
) ON [DATA]




我对那个ON [DATA] 表示不解,这个是什么意思呢?


------解决方案--------------------
参考http://technet.microsoft.com/zh-cn/library/ms174979

ON { <partition_scheme> | filegroup | "default" }
指定存储表的分区架构或文件组。如果指定了 <partition_scheme>,则该表将成为已分区表,其分区存储在 <partition_scheme> 所指定的一个或多个文件组的集合中。如果指定了 filegroup,则该表将存储在命名的文件组中。数据库中必须存在该文件组。如果指定了 "default",或者根本未指定 ON,则表存储在默认文件组中。CREATE TABLE 中指定的表的存储机制以后不能进行更改。

ON {<partition_scheme> | filegroup |"default"} 也可在 PRIMARY KEY 约束或 UNIQUE 约束中指定。这些约束会创建索引。如果指定了 filegroup,则索引将存储在命名的文件组中。如果指定了 "default",或者根本未指定 ON,则索引将与表存储在同一文件组中。如果 PRIMARY KEY 约束或 UNIQUE 约束创建聚集索引,则表的数据页将与索引存储在同一文件组中。如果指定了 CLUSTERED 或约束另外创建了聚集索引,并且指定的 <partition_scheme> 不同于表定义的 <partition_scheme> 或 filegroup ,或反之,则只接受约束定义,而忽略其他定义。

------解决方案--------------------
指的实在那个文件组上创建这个表

详细资料看楼上树哥给的链接
------解决方案--------------------
没有on [Data]就是把table创建在这个database的默认filegroup上。有没有必要取决于你了。