创建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获得数据库非聚集索引的代码的更多相关文章

  1. SQLServer之创建非聚集索引

    开始之前 典型实现 可以通过下列方法实现非聚集索引: UNIQUE 约束 在创建 UNIQUE 约束时,默认情况下将创建唯一非聚集索引,以便强制 UNIQUE 约束. 如果不存在该表的聚集索引,则可以 ...

  2. SqlServer中创建非聚集索引和非聚集索引

    聚集索引与非聚集索引,其实已经有很多的文章做过详细介绍. 非聚集索引 简单来说,聚集索引是适合字段变动不大(尽可能不出现Update的字段).出现字段重复率小的列,因为聚集索引是对数据物理位置相同的索 ...

  3. SQLSERVER聚集索引与非聚集索引的再次研究(上)

    SQLSERVER聚集索引与非聚集索引的再次研究(上) 上篇主要说聚集索引 下篇的地址:SQLSERVER聚集索引与非聚集索引的再次研究(下) 由于本人还是SQLSERVER菜鸟一枚,加上一些实验的逻 ...

  4. SQLSERVER聚集索引与非聚集索引的再次研究(下)

    SQLSERVER聚集索引与非聚集索引的再次研究(下) 上篇主要说了聚集索引和简单介绍了一下非聚集索引,相信大家一定对聚集索引和非聚集索引开始有一点了解了. 这篇文章只是作为参考,里面的观点不一定正确 ...

  5. 【SqlServer】聚集索引与主键、非聚集索引

    目录结构: contents structure [-] 聚集索引和非聚集索引的区别 聚集索引和主键的区别 主键和(非)聚集索引的常规操作 聚集索引.非聚集索引在SqlServer.MySQL.Ora ...

  6. sqlserver 聚集索引 非聚集索引

    聚集索引是一种对磁盘上实际数据重新组织以按指定的一列或者多列值排序.像我们用到的汉语字典,就是一个聚集索引.换句话说就是聚集索引会改变数据库表中数据的存放顺序.非聚集索引不会重新组织表中的数据,而是对 ...

  7. SqL数据库发布订阅非聚集索引没有被复制到订阅服务器的解决方案

    Non-Clustered Indexes not copying in Transactional Replication : SQL Server 2008 方法1: You have trans ...

  8. SQLServer中重建聚集索引之后会影响到非聚集索引的索引碎片吗

    本文出处:http://www.cnblogs.com/wy123/p/7650215.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...

  9. SQLServer之创建唯一非聚集索引

    创建唯一非聚集索引典型实现 唯一索引可通过以下方式实现: PRIMARY KEY 或 UNIQUE 约束 在创建 PRIMARY KEY 约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自 ...

随机推荐

  1. 实时通讯之Socket.io

    WebSocket WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术.使用WebSocket,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成 ...

  2. 洛谷P2680 运输计划(倍增LCA + 树上差分 + 二分答案)

    [题目链接] [思路]: 根据题意可以明显看出,当所有任务都完成时的时间是最终的结果,也就是说本题要求,求出最小的最大值. 那这样的话就暗示了将答案二分,进行check. [check方法]: 如果说 ...

  3. django url注册器组件, 响应器组件, 分页器组件

    一.url注册器的使用 1.1导入模块 from django.urls import re_path, include from .serializer import views from rest ...

  4. Graylog-Sidecar

    收集linux日志-filebeat 安装sidecar 下载graylog-sidecar-1.0.2-1.x86_64.rpm rpm -ivh graylog-sidecar-1.0.2-1.x ...

  5. 201871020225-牟星源《面向对象程序设计(java)》第四周学习总结

    201871020225-牟星源<面向对象程序设计(java)>第四周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这 ...

  6. linux修改服务器时区并使用所选时区的时间

    linux 修改服务器时区并使用所选时区的时间(以 ubuntu18.04 修改为美国芝加哥时区为例) 一.修改时区    /usr/bin/tzselect        1.选择地区, 美洲地区: ...

  7. 修改JDK安装路径的作用

    JDK的默认安装路径是Program Files文件夹,而Program Files的两个英文单词间有空格, 而当JDK的安装路径里包含空格时,在设置CLASSPATH时,可能会引发莫名奇妙的错误, ...

  8. STM32片上Flash容量大小命名规则

  9. NOIP 2013 积木大赛

    洛谷 P1969 积木大赛 洛谷传送门 JDOJ 2229: [NOIP2013]积木大赛 D2 T1 JDOJ传送门 题目描述 春春幼儿园举办了一年一度的"积木大赛".今年比赛的 ...

  10. selenium--高亮显示正在操作的元素

    前戏 在进行web自动化的时候,如果我们想知道正在操作的元素,我们可以通过js的方式来实现 实战 from selenium import webdriver import unittest, tim ...