
正文
sqlserver删索引,sql中删除索引
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
sqlserver 删除索引时遇到的问题,请高手指教!!!
--找出UNIQUE 约束所在的表
select o.name as [约束所在表],c.name as [关联字段]
from sys.objects o join sys.foreign_key_columns f on o.object_id=f.parent_object_id
join sys.columns c on o.object_id=c.object_id
where f.referenced_object_id=object_id('你的表名')
--查找约束名字
exec sp_helpconstraint [约束所在表]
--删除该约束
alter table [约束所在表] drop constraint XXXX
--最后删除你的索引
drop index stu_limit_table.sub_number_unique on tbname(column)
相关问答
Q1: sqlserver 2000 数据删除了,索引还在吗?
索引是加载在表上的,你如果只是删除数据的话,索引还在的。就像表结构也还在啊。
Q2: 删除索引的sql语句是(
先选择该索引。右键看看哪些表对该索引有依赖。解除依赖。再用Drop Index 索引名 删除
alter table tableName drop index indexName
用delete 语句可以删去,但是在栓去之前的解除表之间的关系。
Q3: 关于Sqlserver索引的问题。
聚集索引在每个表内又只能建立一个
聚集索引一定要将聚集索引建立在:
1、最频繁使用的、用以缩小查询范围的字段上;
2、最频繁使用的、需要排序的字段上。
赞成这个说法。
如果真想在你说的列上建立,那就将ID的主键属性去掉。然后再日期上建立。
Q4: sqlserver2014创建索引和删除索引的方法
在使用sql
server数据库系统的网友们都知道,一个好的数据库系统里面如果缺少索引,那么这个数据库就不算是一个完整的数据库系统,因为数据库系统是用来存放数据的,索引就像标签一样,用户通过索引可以快速的找到自己想要的东西。接下来小编要讲的两个问题是,第一sql
server2014怎么创建索引第二个是sqlserver2014删除索引的方法。
sql
server2014怎么创建索引:
ALTER
TABLE
`table_name`
ADD
INDEX
index_name
(
`column`
)
1、下面演示下user表的name字段添加一个索引
2、主键索引
添加PRIMARY
KEY
ALTER
TABLE
`table_name`
ADD
PRIMARY
KEY
(
`column`
)
3、唯一索引
添加UNIQUE
ALTER
TABLE
`table_name`
ADD
UNIQUE
(
`column`
)
4、全文索引
添加FULLTEXT
ALTER
TABLE
`table_name`
ADD
FULLTEXT
(
`column`)
5、如何添加多列索引
ALTER
TABLE
`table_name`
ADD
INDEX
index_name
(
`column1`,
`column2`,
`column3`
)
sqlserver2014删除索引方法:
可利用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数据库系统时,遇到索引之类的问题可以查看小编的教程希望可以给网友们提供有效帮助哈哈!!
Q5: Sqlserver2008删除索引问题
请采用下列脚本
/*删除索引*/
declare @table table (keyId int identity,name1 varchar(100),name2 varchar(100))
insert into @table(name1,name2)
select object_name(object_id),name from sys.indexes where name like 'IDX%'
declare @i int
declare @imax int
declare @name1 varchar(100)
declare @name2 varchar(100)
set @i =1
select @imax = max(keyId) from @table t
while @i =@imax
begin
set @name1 =''
set @name2 =''
select @name1 = name1,@name2=name2 from @table t where t.keyId =@i
print 'drop index ['+@name2 +'] on table ['+@name1+'] '
---exec ('drop index '+@name2 +' on table '+@name1 )
set @i =@i+1
end
go
declare @table table(keyId int identity,name varchar(100))
insert into @table (name) select name from sys.tables where type='u'
/*修理表结构*/
declare @i int
declare @imax int
declare @name varchar(100)
set @i =1
select @imax = max(keyId) from @table t
while @i =@imax
begin
set @name =''
select @name = name from @table t where t.keyId =@i
print 'alter table ['+@name +'] drop column [_MASK_FROM_V2]'
--exec ('alter table '+@name +' drop column [_MASK_FROM_V2]')
set @i =@i+1
end
分两步操作
1 删除索引
2 修改表结构
有疑问及时沟通。
先在测试机上操作,请采纳!








