sqlserver获得数据库非聚集索引的代码
创建Index
DECLARE @zindex_sql NVARCHAR(max);
SET @zindex_sql = N''; SELECT @zindex_sql = @zindex_sql +
CASE WHEN r.is_primary_key=1 THEN
N'ALTER TABLE [' + r.schemas_name + '].[' + r.tablename + '] ADD CONSTRAINT [' + r.INDEX_name + N'] PRIMARY KEY ' + r.type_desc + N' ' +
r.index_fields +
CASE WHEN r.include_fields<>N'' THEN N' INCLUDE ' + r.include_fields ELSE N'' END +
N' ON [' + r.data_spaces_name + N'];'
ELSE
N'CREATE ' +
CASE WHEN r.is_unique=1 THEN N'UNIQUE ' ELSE N'' END
+ r.type_desc + N' INDEX [' + r.INDEX_name + N'] ON [' + r.schemas_name + '].[' + r.tablename + '] ' + r.index_fields +
CASE WHEN r.include_fields<>N'' THEN N' INCLUDE ' + r.include_fields ELSE N'' END +
N' ON [' + r.data_spaces_name + N'];'
END
FROM (
SELECT b.object_id AS tid,b.schemas_name, b.name AS tablename,c.name as INDEX_name,
REPLACE(REPLACE(REPLACE((SELECT N'[' + y.name + N']' + CASE WHEN x.is_descending_key=1 THEN N' DESC' ELSE N'' END AS field_name
FROM sys.index_columns x
INNER JOIN sys.columns y ON y.object_id = x.object_id AND y.column_id = x.column_id
WHERE x.object_id=c.object_id AND x.index_id=c.index_id AND x.is_included_column=0 ORDER BY x.key_ordinal FOR XML PATH('')) ,N'</field_name><field_name>',N',')
,N'<field_name>',N'(')
,N'</field_name>',N')')
AS index_fields,
REPLACE(REPLACE(REPLACE((SELECT N'[' + y.name + N']' + CASE WHEN x.is_descending_key=1 THEN N' DESC' ELSE N'' END AS field_name
FROM sys.index_columns x
INNER JOIN sys.columns y ON y.object_id = x.object_id AND y.column_id = x.column_id
WHERE x.object_id=c.object_id AND x.index_id=c.index_id AND x.is_included_column=1 ORDER BY x.key_ordinal FOR XML PATH('')) ,N'</field_name><field_name>',N',')
,N'<field_name>',N'(')
,N'</field_name>',N')')
AS include_fields,
c.*
,data_spaces.name AS data_spaces_name
FROM (
SELECT a.*,schemas.name AS schemas_name FROM sys.tables AS a
INNER JOIN sys.schemas ON schemas.schema_id = a.schema_id
INNER JOIN (
SELECT * FROM [XServer\PREDEPLOY].DB1.sys.tables AS [Tables] WHERE Tables.name LIKE N'tbl%') AS b
ON b.name = a.name COLLATE SQL_Latin1_General_CP1_CI_AS
)b
INNER JOIN sys.indexes c ON c.object_id = b.object_id
INNER JOIN sys.data_spaces ON data_spaces.data_space_id = c.data_space_id
WHERE c.type IN (1,2)
) r
;
https://www.cnblogs.com/shiyh/p/9431786.html
设置数据库collation
DECLARE @sql NVARCHAR(max);
SET @sql = N'';
SELECT
@sql = @sql + N' alter table ' + [Tables].name + N' alter column ' + [Columns].name + N' ' + Types.name + N'(' + CASE WHEN [Columns].max_length=-1 THEN N'max' else CAST([Columns].max_length/2 AS NVARCHAR(5)) END + N') collate DATABASE_DEFAULT;' + NCHAR(10) + NCHAR(13)
FROM sys.tables AS [Tables]
INNER JOIN sys.columns AS [Columns]
ON [Tables].object_id = [Columns].object_id
INNER JOIN sys.types AS [Types]
ON [Columns].system_type_id = [Types].system_type_id
AND is_user_defined = 0
AND [Types].name <> 'sysname'
LEFT OUTER JOIN sys.extended_properties AS [Properties]
ON [Properties].major_id = [Tables].object_id
AND [Properties].minor_id = [Columns].column_id
AND [Properties].name = 'MS_Description'
WHERE Columns.collation_name IS NOT NULL AND CHARINDEX(N'tbl' ,[Tables].name)=1
ORDER BY [Tables].name,[Columns].name SELECT @sql;
删除Index
DECLARE @zdrop_index_sql NVARCHAR(max);
SET @zdrop_index_sql = N''; SELECT @zdrop_index_sql = @zdrop_index_sql +
CASE WHEN r.is_primary_key=1 THEN
N'ALTER TABLE [' + r.schemas_name + '].[' + r.tablename + '] DROP CONSTRAINT [' + r.INDEX_name + N'];'
ELSE
N'DROP INDEX [' + r.INDEX_name + N'] ON [' + r.schemas_name + '].[' + r.tablename + ']; '
end
FROM (
SELECT b.object_id AS tid,b.schemas_name, b.name AS tablename,c.name as INDEX_name,c.is_primary_key
FROM (
SELECT a.*,schemas.name AS schemas_name FROM sys.tables AS a
INNER JOIN sys.schemas ON schemas.schema_id = a.schema_id
INNER JOIN (
SELECT * FROM [XServer\PREDEPLOY].DB1.sys.tables AS [Tables] WHERE Tables.name LIKE N'tbl%') AS b
ON b.name = a.name COLLATE SQL_Latin1_General_CP1_CI_AS
)b
INNER JOIN sys.indexes c ON c.object_id = b.object_id
WHERE c.type IN (1,2)
) r
; SELECT @zdrop_index_sql;
sqlserver获得数据库非聚集索引的代码的更多相关文章
- SQLServer之创建非聚集索引
开始之前 典型实现 可以通过下列方法实现非聚集索引: UNIQUE 约束 在创建 UNIQUE 约束时,默认情况下将创建唯一非聚集索引,以便强制 UNIQUE 约束. 如果不存在该表的聚集索引,则可以 ...
- SqlServer中创建非聚集索引和非聚集索引
聚集索引与非聚集索引,其实已经有很多的文章做过详细介绍. 非聚集索引 简单来说,聚集索引是适合字段变动不大(尽可能不出现Update的字段).出现字段重复率小的列,因为聚集索引是对数据物理位置相同的索 ...
- SQLSERVER聚集索引与非聚集索引的再次研究(上)
SQLSERVER聚集索引与非聚集索引的再次研究(上) 上篇主要说聚集索引 下篇的地址:SQLSERVER聚集索引与非聚集索引的再次研究(下) 由于本人还是SQLSERVER菜鸟一枚,加上一些实验的逻 ...
- SQLSERVER聚集索引与非聚集索引的再次研究(下)
SQLSERVER聚集索引与非聚集索引的再次研究(下) 上篇主要说了聚集索引和简单介绍了一下非聚集索引,相信大家一定对聚集索引和非聚集索引开始有一点了解了. 这篇文章只是作为参考,里面的观点不一定正确 ...
- 【SqlServer】聚集索引与主键、非聚集索引
目录结构: contents structure [-] 聚集索引和非聚集索引的区别 聚集索引和主键的区别 主键和(非)聚集索引的常规操作 聚集索引.非聚集索引在SqlServer.MySQL.Ora ...
- sqlserver 聚集索引 非聚集索引
聚集索引是一种对磁盘上实际数据重新组织以按指定的一列或者多列值排序.像我们用到的汉语字典,就是一个聚集索引.换句话说就是聚集索引会改变数据库表中数据的存放顺序.非聚集索引不会重新组织表中的数据,而是对 ...
- SqL数据库发布订阅非聚集索引没有被复制到订阅服务器的解决方案
Non-Clustered Indexes not copying in Transactional Replication : SQL Server 2008 方法1: You have trans ...
- SQLServer中重建聚集索引之后会影响到非聚集索引的索引碎片吗
本文出处:http://www.cnblogs.com/wy123/p/7650215.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...
- SQLServer之创建唯一非聚集索引
创建唯一非聚集索引典型实现 唯一索引可通过以下方式实现: PRIMARY KEY 或 UNIQUE 约束 在创建 PRIMARY KEY 约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自 ...
随机推荐
- PHP使用PhpAnalysis进行分词
1.介绍 PHPAnalysis分词程序使用居于unicode的词库,使用反向匹配模式分词,理论上兼容编码更广泛,并且对utf-8编码尤为方便. 下载地址:http://www.phpbone.com ...
- kibana自动创建索引
一般索引按月.季或年为单位创建索引.我这里写成logstash-www-2019-03,www是URL的二级域名.格式类型完全根据自己方便就行. 当ELK集群中的索引过多时,我这里有100多个不同的日 ...
- USB规格及速度
1. 速度对比 2. 硬件特性 USB2.0四线:5V,D-,D+,GND. USB3.0一般十线:5V,D-,D+,GND,SSTX+,SSTX-,SSRX+,SSRX-,P1_Drain,P2_D ...
- Nios II IDE代码优化,quartus ii 11.0版本IDE
开发Altera Nios II软件可使用Nios II IDE或 Nios II Software BuildTools for Eclipse(即:Nios II SBT for Eclipse) ...
- django 权限设置-登录配置权限
1.首先需要一个判断用户是否拥有这个权限的name来区分在主页上是否显示标签 在permission中加入 name=models.CharField(max_length=32, verbose_n ...
- 使用WIFI网卡 dhcp动态获取IP
前面几篇博客中,wifi网卡的ip都是手工设置的,本篇博客将来移植dhcp,使得wifi网卡可以动态的获取ip.路由等信息. 那我们去哪里下载dhcp源码呢?在pc机上执行dh +tab键,看一下有哪 ...
- Python基础B(数据类型----交互)
数据类型 数字类型 一.整型(int) age = 18 % age=int(18) print(id(age)) print(type(age)) print(age) 4530100848 < ...
- 移动端事件(touchstart、touchmove、touchend)--移动端开发整理笔记(三)
移动端事件 三个事件 touchstart 手指触摸 相当于PC端 mousedown touchend 手指抬起 相当于PC端 mouseup touchmove 手指滑动 相当于PC端 mousm ...
- PHP csv导出数据
全部导出和时间导出 html代码,全程并不需要引用什么插件 <include file="public@header"/> <link href="__ ...
- cc2530的第三次实验,按键中断控制流水灯
cc2530的第三次实验:按键中断控制流水灯 效果为按一次按键,流水灯亮一次 实验相关电路图: 实验相关寄存器: 初始化函数 //初始化LED灯 //设置P1SEL,通用为0,外设为1 1111110 ...