• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 一个删除指定表的所有索引和统计的过程

一个删除指定表的所有索引和统计的过程

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了索引,统计等相关知识,希望本文的分享对您有所帮助

sql2005 一个删除指定表的所有索引和统计的过程

代码如下:
------------------------------------------------------------------------
-- Author : HappyFlyStone
-- Date : 2009-09-05 00:57:10
-- Version: Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86)
-- Apr 14 2006 01:12:25
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
--
------------------------------------------------------------------------
IF EXISTS (SELECT name FROM sysobjects WHERE id = OBJECT_ID('sp_DropAllIndex')
AND OBJECTPROPERTY(OBJECT_ID('sp_DropAllIndex'),'IsProcedure')=1)
DROP PROCEDURE sp_DropAllIndex
GO
CREATE PROCEDURE sp_DropAllIndex
@tabname nvarchar(150) -- 需要删除统计或索引的表
AS
BEGIN
DECLARE @drop_idx_string nvarchar(4000) -- 存放动态组织而成的DROPS index/stats 语法
SET NOCOUNT ON
-- check table
IF NOT EXISTS (SELECT 1
FROM INFORMATION_SCHEMA.TABLES
WHERE table_type = 'base table' AND table_name = @tabname)
BEGIN
RAISERROR(N'------当前表:''%s'' 不存在!',16, 1, @tabname)
RETURN (1)
END
SET @tabname = OBJECT_ID(@tabname)
IF EXISTS (SELECT 1
FROM sysindexes
WHERE id=@tabname AND indid BETWEEN 1 AND 254
AND status IN (96,10485856,8388704))
BEGIN
SELECT @drop_idx_string = isnull(@drop_idx_string+';','')
+ ('DROP STATISTICS '+OBJECT_NAME(@tabname)+'.'+name)
FROM sysindexes
WHERE id=@tabname AND indid BETWEEN 1 AND 254
AND status IN (96,10485856,8388704)
END
IF Len(@drop_idx_string) > 0
BEGIN
PRINT N'------统计删除列表------'
PRINT @drop_idx_string+';'
EXECUTE(@drop_idx_string+';')
PRINT N'------统计删除结束------'
END
IF EXISTS (SELECT 1 FROM sysindexes
WHERE id=@tabname AND indid BETWEEN 1 AND 254
AND status NOT IN (96,10485856,8388704))
BEGIN
SET @drop_idx_string = NULL
select @drop_idx_string = isnull(@drop_idx_string+';'+CHAR(13)+CHAR(10),'')
+ ('DROP INDEX '+OBJECT_NAME(@tabname)+'.'+name)
FROM sysindexes
WHERE id=@tabname AND indid BETWEEN 1 AND 254
AND status NOT IN (96,10485856,8388704)
AND OBJECTPROPERTY (OBJECT_ID(name),'IsConstraint') IS NULL--过程不处理CONSTRAINTS
END
PRINT N'------索引删除列表------'
PRINT (@drop_idx_string+';')
EXEC( @drop_idx_string+';')
PRINT ('......'+CHAR(13)+CHAR(10)+'......')
PRINT N'------索引删除结束------'
END
GO
create clustered index idx_id on ta(id)
create index idx_col on ta(col)
go
sp_DropAllIndex 'ta'
/*
------索引删除列表------
DROP INDEX ta.idx_id;
DROP INDEX ta.idx_col;
......
......
------索引删除结束------
*/
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • msyql show命令汇总
  • MySQL查询优化之索引的应用详解
  • 深入MySQL存储引擎比较的详解
  • 如何使用索引提高查询速度
  • MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
  • 深入理解MySQL的数据库引擎的类型
  • 基于mysql全文索引的深入理解
  • MYSQL索引无效和索引有效的详细介绍
  • MySQL前缀索引导致的慢查询分析总结
  • mysql 将列值转变为列的方法

相关文章

  • 2018-12-05MySQL UDF调试方式debugview的相关方法
  • 2018-12-05mysql性能优化之max,count优化
  • 2017-05-11mysql下修改engine引擎的方法
  • 2018-12-05Oracle中sys和system的区别小结
  • 2017-05-11MySQL中触发器入门简单实例与介绍
  • 2018-12-05 Mysql系列(十一)异常处理
  • 2017-05-11MySQL 5.5主从同步设置笔记分享
  • 2018-12-05MySQL delete触发器(删除)用法详解
  • 2017-05-11Lost connection to MySQL server at 'reading authorization packet', system error: 0
  • 2018-12-05MyBatis3 用log4j在控制台输出 SQL( 数据库操作技巧)

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 详细介绍mysql5.7.17安装使用教程(图文)
    • Oracle数据库安全策略分析(二)
    • mysql 发生系统错误1067的解决方法
    • 将count(*)值写入另一个表中的方法
    • MySQL索引类型与优缺点
    • MySql采用GROUP_CONCAT合并多条数据显示的方法
    • 基于Tags实现内容推荐的方法(代码)
    • oracle 多个字符替换实现
    • mysql存储过程 在动态SQL内获取返回值的方法详解
    • mysql 数据同步 出现Slave_IO_Running:No问题的解决方法小结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有