sql索引删除
‘壹’ sql 2000 表里的索引删不了,有什么方法强制删掉的
如果 是主键索引,和唯一索引,并且为其他表数据外键 ,是不能删除,,先取消外键索引才行。
CREATE UNIQUE INDEX 终止,因为发现了索引 ID 2 的重复键。最重要的主键为 'type 6c, len 9'。
这个原因是你你创建索引的列 表中存在重复值,
‘贰’ 删除索引的sql语句是(
先选择该索引。右键看看哪些表对该索引有依赖。解除依赖。再用Drop Index 索引名 删除
alter table tableName drop index indexName
用delete 语句可以删去,但是在栓去之前的解除表之间的关系。
‘叁’ 如何用sql语句删除存在的索引
alter table tableName drop index indexName
‘肆’ 如何用SQL语句删除一个表上的所有索引
DROP INDEX index_name ON talbe_name
或者
ALTER TABLE table_name DROP INDEX index_name
‘伍’ sql如何建立降序索引 和删除索引
建立降序索引语法:
createindex索引名on表名(字段名desc);
注:desc换成asc则是升序索引。
删除索引语法:
dropindex索引名;
(5)sql索引删除扩展阅读:
索引的使用及注意事项
尽量避免这些不走索引的sql:
1、SELECT `sname` FROM `stu` WHERE `age`+10=30;不会使用索引,因为所有索引列参与了计算。
2、SELECT `sname` FROM `stu` WHERE LEFT(`date`,4) <1990; 不会使用索引,因为使用了函数运算,原理与上面相同。
3、SELECT * FROM `hounwang` WHERE `uname` LIKE'后盾%' 走索引。
4、SELECT * FROM `hounwang` WHERE `uname` LIKE "%后盾%"不走索引。
5、字符串与数字比较不使用索引;
CREATE TABLE `a` (`a` char(10));
EXPLAIN SELECT * FROM `a` WHERE `a`="1"走索引。
EXPLAIN SELECT * FROM `a` WHERE `a`=1 不走索引
参考资料:网络索引
‘陆’ 如何通过SQL创建删除表的索引
在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。 1.ALTER TABLE ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。 ALTER TABLE table_name ADD INDEX index_name (column_list) ALTER TABLE table_name ADD UNIQUE (column_list) ALTER TABLE table_name ADD PRIMARY KEY (column_list) 2.CREATE INDEX CREATE INDEX可对表增加普通索引或UNIQUE索引。 CREATE INDEX index_name ON table_name (column_list) CREATE UNIQUE INDEX index_name ON table_name (column_list) table_name、index_name和column_list具有与ALTER TABLE语句中相同的含义,索引名不可选。另外,不能用CREATE INDEX语句创建PRIMARY KEY索引。 3.索引类型 在创建索引时,可以规定索引能否包含重复值。如果不包含,则索引应该创建为PRIMARY KEY或UNIQUE索引。对于单列惟一性索引,这保证单列不包含重复的值。对于多列惟一性索引,保证多个值的组合不重复。 PRIMARY KEY索引和UNIQUE索引非常类似。事实上,PRIMARY KEY索引仅是一个具有名称PRIMARY的UNIQUE索引。这表示一个表只能包含一个PRIMARY KEY,因为一个表中不可能具有两个同名的索引。 下面的SQL语句对students表在sid上添加PRIMARY KEY索引。 ALTER TABLE students ADD PRIMARY KEY (sid) 4. 删除索引 可利用ALTER TABLE或DROP INDEX语句来删除索引。类似于CREATE INDEX语句,DROP INDEX可以在ALTER TABLE内部作为一条语句处理,语法如下。 DROP INDEX index_name ON talbe_name ALTER TABLE table_name DROP INDEX index_name ALTER TABLE table_name DROP PRIMARY KEY 其中,前两条语句是等价的,删除掉table_name中的索引index_name。 第3条语句只在删除PRIMARY KEY索引时使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。 如果从表中删除了某列,则索引会受到影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。
‘柒’ 如何通过SQL创建删除表的索引
在执行CREATE
TABLE语句时可以创建索引,也可以单独用CREATE
INDEX或ALTER
TABLE来为表增加索引。
1.ALTER
TABLE
ALTER
TABLE用来创建普通索引、UNIQUE索引或PRIMARY
KEY索引。
ALTER
TABLE
table_name
ADD
INDEX
index_name
(column_list)
ALTER
TABLE
table_name
ADD
UNIQUE
(column_list)
ALTER
TABLE
table_name
ADD
PRIMARY
KEY
(column_list)
2.CREATE
INDEX
CREATE
INDEX可对表增加普通索引或UNIQUE索引。
CREATE
INDEX
index_name
ON
table_name
(column_list)
CREATE
UNIQUE
INDEX
index_name
ON
table_name
(column_list)
table_name、index_name和column_list具有与ALTER
TABLE语句中相同的含义,索引名不可选。另外,不能用CREATE
INDEX语句创建PRIMARY
KEY索引。
3.索引类型
在创建索引时,可以规定索引能否包含重复值。如果不包含,则索引应该创建为PRIMARY
KEY或UNIQUE索引。对于单列惟一性索引,这保证单列不包含重复的值。对于多列惟一性索引,保证多个值的组合不重复。
PRIMARY
KEY索引和UNIQUE索引非常类似。事实上,PRIMARY
KEY索引仅是一个具有名称PRIMARY的UNIQUE索引。这表示一个表只能包含一个PRIMARY
KEY,因为一个表中不可能具有两个同名的索引。
下面的SQL语句对students表在sid上添加PRIMARY
KEY索引。
ALTER
TABLE
students
ADD
PRIMARY
KEY
(sid)
4.
删除索引
可利用ALTER
TABLE或DROP
INDEX语句来删除索引。类似于CREATE
INDEX语句,DROP
INDEX可以在ALTER
TABLE内部作为一条语句处理,语法如下。
DROP
INDEX
index_name
ON
talbe_name
ALTER
TABLE
table_name
DROP
INDEX
index_name
ALTER
TABLE
table_name
DROP
PRIMARY
KEY
其中,前两条语句是等价的,删除掉table_name中的索引index_name。
第3条语句只在删除PRIMARY
KEY索引时使用,因为一个表只可能有一个PRIMARY
KEY索引,因此不需要指定索引名。如果没有创建PRIMARY
KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。
如果从表中删除了某列,则索引会受到影响。对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。如果删除组成索引的所有列,则整个索引将被删除。
‘捌’ SQL索引怎么删不了啊
select name from sys.indexes where object_id =object_id('表名')
看看有没有你要删除的这个索引
‘玖’ Sqlserver2008删除索引问题
请采用下列脚本
/*删除索引*/
declare@tabletable(keyIdintidentity,name1varchar(100),name2varchar(100))
insertinto@table(name1,name2)
selectobject_name(object_id),namefromsys.indexeswherenamelike'IDX%'
declare@iint
declare@imaxint
declare@name1varchar(100)
declare@name2varchar(100)
set@i=1
select@imax=max(keyId)from@tabletwhile@i<=@imax
begin
set@name1=''
set@name2=''
select@name1=name1,@[email protected]=@i
print'dropindex['+@name2+']ontable['+@name1+']'
---exec('dropindex'+@name2+'ontable'+@name1)
set@i=@i+1
endgo
declare@tabletable(keyIdintidentity,namevarchar(100))
insertinto@table(name)selectnamefromsys.tableswheretype='u'
/*修理表结构*/
declare@iint
declare@imaxint
declare@namevarchar(100)
set@i=1
select@imax=max(keyId)from@tabletwhile@i<=@imax
begin
set@name=''
select@[email protected]=@iprint'altertable['+@name+']dropcolumn[_MASK_FROM_V2]'
--exec('altertable'+@name+'dropcolumn[_MASK_FROM_V2]')
set@i=@i+1
end
分两步操作
1 删除索引
2 修改表结构
有疑问及时沟通。
先在测试机上操作,请采纳!
‘拾’ SQL删除索引
删除索引时,系统会同时从数据字典中删去有关该索引的描述