Delphi中管理sql server索引
索引
1.对指定表的指定字段创建惟一聚集索引
可以用SQ语句CREATE UNIQUE CUSTERED来创建惟一聚集索引,其字段名必须用括号括起来,可以在字段的后面用关键字ASC/DESC来设置字段是升序还是降序,在一个表中只能创建一个惟一聚集索引。如果去掉UNIQUE,则创建的是聚集索引,去掉UNIQUE CUSTERED创建的是非聚集索引。
下面对指定表创建惟一聚集索引。
操作步骤如下:
(1)运行Dephi,在窗体中添加TADOConnection、TADOQuery、TDataSource、TButton、TEdit和TDBGrid等组件。
(2)主要程序代码如下:
创建一个惟一聚集索引。
with ADOQuery2 do
begin
cose;
SQ.Cear;
SQ.Add('CREATE UNIQUE CUSTERED INDEX '+Edit1.Text+' ON '+ComboBox1.Text+'('+Combo Box2.Text+Str+')');
EXECSQ;
end;
删除已创建的索引。
with ADOQuery2 do
begin
cose;
SQ.Cear;
SQ.Add('If EXISTS(Seect * from sysindexes where name='+QuotedStr(Trim(Edit1.Text))+')'); //判断索引是否存在
SQ.Add('Drop Index '+COmboBox1.Text+'.'+Edit1.Text); //删除索引
EXECSQ;
end;
2.更新、删除已创建的索引
对索引名进行更新主要用系统存储过程sp_rename,删除索引名用SQ中的“DROP INDEX”语句来实现,上面的两种方法在获取索引名时,其索引名的格式必须为“表名.索引名”。
下面对指定表的索引名进行更新和删除。
操作步骤如下:
(1)运行Dephi,在窗体中添加TADOConnection、TADOQuery、TDataSource、TComboBox、TButton和TEdit等组件。
(2)主要程序代码如下:
更改索引名称。
with ADOQuery1 do
begin
cose;
SQ.Cear;
SQ.Add('EXEC sp_rename '+''''+Combobox1.Text+'.'+Edit2.Text+''''+','+''''+Edit1.Text+'''');
EXECSQ;
end;
删除已创建的索引名。
with ADOQuery1 do
begin
cose;
SQ.Cear;
SQ.Add('Drop Index '+Combobox1.Text+'.'+Edit2.Text);
EXECSQ;
end;
3.创建全文索引
创建索引的相关步骤如下:
(1)对要创建全文索引的表创建一个惟一聚集索引。
CREATE UNIQUE CUSTERED INDEX 索引名称 ON 表名(索引字段)WITH IGNORE_DUP_KEY
在一个表中只能创建一个惟一聚集索引。
(2)用系统存储过程sp_futext_database启动全文索引。
EXEC sp_futext_database 'enabe'
(3)用系统存储过程sp_futext_cataog创建全文索引目录。
EXEC sp_futext_cataog '索引目录名称','create'
对全文索引目录进行重命名或删除,只要将关键字create改为rebuid或drop即可。
(4)数据表启用全文索引。
EXEC sp_futext_tabe '表名', 'create', '索引目录名称', '创建的惟一聚集索引名称'
(5)添加全文索引字段。
EXEC sp_futext_coumn '表名', '字段名', 'add'
(6)用系统存储过程sp_futext_tabe中的关键字start_fu来激活全文目录。
EXEC sp_futext_tabe '表名','start_fu'
(7)对创建的全文目录进行完全填充。
EXEC sp_futext_tabe '表名','start_fu'
下面将对“MR_SQ”数据库中的指定表创建全文索引,如图1所示。

图1 创建全文索引