如何在SQL SERVER 中设置索引?(100分)

  • 主题发起人 主题发起人 wsd
  • 开始时间 开始时间
W

wsd

Unregistered / Unconfirmed
GUEST, unregistred user!
1。如何在SQL SERVER 的一张表中设置索引?例如排序等。
2。如何保证在SQL SERVER的一张表所有字段中的三个字段的组合值不重复?
例如f1,f2,f3这三个字段中单独每个字段的值可以重复,但是三个字段
的组合值(f1,f2,f3)不会重复.

很简单,诸位不要见笑!
 
好象是create index什么的,看看SQL的帮助吧
 
在企业管理器创建的方法:
在数据库表中,可以使用索引加快访问数据的速度。通过在要执行搜索的表中选择一列
或多列来创建索引。一旦保存表后,即可使用索引。

创建索引方法

在数据库关系图中选择要创建索引的表,右击该表,然后从快捷菜单中选择"索引/键"
命令。
-或-

为要创建索引的表打开表设计器,在表设计器中右击,然后从快捷菜单中选择"索引/键"
命令。

选择"新建"命令。"选定的索引"框显示系统分配给新索引的名称。


在"列名"下选择要创建索引的列。可以选择多达 16 列。为获得最佳性能,最好只选择
一列或两列。对所选的每一列,可指出索引是按升序还是降序组织列值。


为索引指定任何其它需要的设置,然后单击"确定"按钮。
当保存表或关系图时,索引即创建在数据库中。


2.或者用create index语句进行:


CREATE INDEX
为给定表或视图创建索引。

只有表或视图的所有者才能为表创建索引。表或视图的所有者可以随时创建索引,无论
表中是否有数据。可以通过指定限定的数据库名称,为另一个数据库中的表或视图创建
索引。

语法
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON { table | view } ( column [ ASC | DESC ] [ ,...n ] )
[ WITH < index_option > [ ,...n] ]
[ ON filegroup ]

< index_option > ::=
{ PAD_INDEX |
FILLFACTOR = fillfactor |
IGNORE_DUP_KEY |
DROP_EXISTING |
STATISTICS_NORECOMPUTE |
SORT_IN_TEMPDB
}

其它的请自己看sql server联机手册
 
wsd:
你的第二个问题,将f1,f2,f3三个字段设置为主键就行了。

定义主键的方法:
定义主键来强制不允许空值的指定列中输入值的唯一性。如果在数据库中为表定义了
主键,则可将该表与其它表相关,从而减少冗余数据。表只能有一个主键。

定义主键的步骤:

在数据库关系图或表设计器中,单击要定义为主键的数据库列的行选择器。若要选
择多个列,请按住 CTRL 键同时单击其它列的行选择器。


右击列的行选择器,然后选择"设置主键"命令。将自动创建一个名为"PK_"且后跟表名]
的主键索引;可在属性页的"索引/键"选项卡上找到该索引。
警告 如果要重新定义主键,则必须先删除任何与现有主键相关的关系才能创建新主
键。将出现一条信息,警告您作为该过程的一部分,将自动删除现有关系。

行选择器上的主键符号 用于标识一个主键列。

如果主键包含不止一列,则在一列中允许有重复值,但主键中所有列值的每个组合
必须唯一。

如果定义复合键,主键中的列顺序将与关系图中的表所显示的列顺序相匹配。不过,
可以在创建主键后更改列的顺序。有关更多信息,请参见修改主键。


另外: 也可以用SQL语句创建、删除和修改主键
 
1。如何在SQL SERVER 的一张表中设置索引?例如排序等。
排序,如果是按某字段物理排序,要用clustered Index
2。如何保证在SQL SERVER的一张表所有字段中的三个字段的组合值不重复?
用Enterprise Manager 阿,把3个字段同时设为Key,就是点那个钥匙一样的东东
 
可以新建一个包含f1,f2,f3的索引,然后选择“约束”,这表示是新建了一个
(f1,f2,f3)的唯一索引。
 
多人接受答案了。
 
后退
顶部