首页 > 数据库 >SQLserver批量批量导出索引

SQLserver批量批量导出索引

时间:2023-08-19 12:00:29浏览次数:48  
标签:index name 批量 t2 SQLserver t1 索引 unique id

WITH indexInfo as (
    SELECT SCHEMA_NAME(t.schema_id) [schema_name],t.name as [table_name],t1.name as [index_name]
    ,t1.type,t1.type_desc,t1.is_unique,t1.is_primary_key,t1.is_unique_constraint,t1.has_filter,t1.filter_definition
    ,STUFF((SELECT ','+t4.name FROM sys.sysindexkeys t2 
        inner join sys.index_columns  t3 ON t2.id=t3.object_id and t2.indid=t3.index_id and t2.colid=t3.column_id
        inner join sys.syscolumns t4 ON t2.id=t4.id and t2.colid=t4.colid
        WHERE t2.id=t1.object_id and t1.index_id=t2.indid  and t2.keyno <> 0 ORDER BY t3.key_ordinal FOR XML PATH('')),1,1,'') AS index_cols
    ,STUFF((SELECT ','+t4.name FROM sys.sysindexkeys t2 
        inner join sys.index_columns  t3 ON t2.id=t3.object_id and t2.indid=t3.index_id and t2.colid=t3.column_id
        inner join sys.syscolumns t4 ON t2.id=t4.id and t2.colid=t4.colid
        WHERE t2.id=t1.object_id and t1.index_id=t2.indid  and t2.keyno = 0 ORDER BY t3.key_ordinal FOR XML PATH('')),1,1,'')  AS include_cols
    FROM sys.tables as t
    inner join sys.indexes as t1 on (t1.index_id > 0 and t1.is_hypothetical = 0) and (t1.object_id=t.object_id)
    WHERE t1.type in(1,2)
), indexInfo2 AS (
SELECT * ,(CASE 
    WHEN is_primary_key = 1 
        THEN 'alter table '+[schema_name]+'.'+[table_name]+' add constraint '+[index_name]+' primary key '+(CASE WHEN [type]=1 THEN 'clustered' ELSE 'nonclustered' END)+'('+index_cols+')'
    WHEN is_unique = 1 AND is_unique_constraint = 1 
        THEN 'alter table '+[schema_name]+'.'+[table_name]+' add constraint '+[index_name]+' unique '+(CASE WHEN [type]=1 THEN 'clustered' ELSE 'nonclustered' END)+'('+index_cols+')'
    WHEN is_unique = 1 AND (is_primary_key = 0 OR is_unique_constraint = 0)
        THEN 'create unique '+(CASE WHEN [type]=1 THEN 'clustered' ELSE 'nonclustered' END)+' index '+[index_name]+'  on '+[schema_name]+'.'+[table_name]+'('+index_cols+')'
    ELSE 'create '+(CASE WHEN [type]=1 THEN 'clustered' ELSE 'nonclustered' END)+' index '+[index_name]+' on '+[schema_name]+'.'+[table_name]+'('+index_cols+') '
    END) script
FROM indexInfo
) SELECT [schema_name],[table_name],[index_name],script
+(CASE WHEN include_cols IS NOT NULL THEN ' include('+include_cols+')' ELSE '' END)
+(CASE WHEN has_filter = 1THEN ' where '+filter_definition ELSE '' END)
FROM indexInfo2
ORDER BY [schema_name],[table_name],[type],[index_name],is_primary_key DESC,is_unique_constraint DESC,is_unique DESC

  

标签:index,name,批量,t2,SQLserver,t1,索引,unique,id
From: https://www.cnblogs.com/shaopang/p/17642260.html

相关文章

  • windows批量telnet脚本
    在windows服务器上,经常需要批量telnet大量地址段端口,来确认网络是否畅通。如果一个个telnet耗时耗力,使用其他第三方程序,则担心不合规,有影响。因此考虑使用windows批处理或者powershell来编写思路写一个input文件,将ip和端口信息保存脚本从input文件逐行读取,循环telnet,将不通的端口记......
  • Oracle 查看用户下所有表注释行数,查看所有索引,组合索引
    --当前用户所有表注释行数selectutc.table_name,utc.COMMENTS,ut.num_rowsfromuser_tab_commentsutc,user_tablesutwhereutc.table_name=ut.table_name--当前用户所有索引组合索引selectdistinctt.table_name,t.index_name,listagg(t.column_name,',......
  • 什么情况下数据库表索引会失效?
    什么情况下数据库表索引会失效?1.单独引用复合索引里非第⼀位置的索引列假如有INDEX(a,b,c),当条件为a或a,b或a,b,c时都可以使用索引,但是当条件为b,c时将不会使用索引。复合索引遵守“最左前缀”原则,即在查询条件中使用了复合索引的第⼀个字段,索引才会被使用。因此,在复合索引中索......
  • 提高批量爬虫采集效率的7个实用技巧
    批量爬虫采集是数据获取的重要手段,但如何提高其效率却是让很多程序员头疼的问题。本文将分享七个实用技巧,帮助你优化批量爬虫采集工作,提高效率和产出。1.优化请求频率:合理设置访问频率是提高爬虫效率的关键。根据网站的响应速度和机器的承载能力,合理调整请求间隔时间,避免过于频繁或......
  • 爬虫新手变高手!快速完成批量爬虫采集任务
    大家好!作为一名专业的爬虫程序员,我今天要和大家分享一些关于如何快速完成批量爬虫采集任务的进阶技巧。如果你已经掌握了基本的爬虫知识,那么这些技巧将帮助你更快地完成采集任务。1.数据去重——避免重复采集和冗余数据在大规模数据采集任务中,经常会出现重复的数据和冗余的信息。为......
  • Python 矢量数据库和矢量索引:构建 LLM 应用程序
    推荐:使用NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景由于使用其硬件创建的生成式AI应用程序,Nvidia经历了显着的增长。另一项软件创新,矢量数据库,也正在乘着生成式人工智能的浪潮。开发人员正在向量数据库上用Python构建AI驱动的应用程序。通过将数据编码为向量,他们可以利......
  • 批量备份数据库日志且30天后自动删除该备份文件
    /********************************************批量备份数据库日志且30天后自动删除该备份文件*******************************************/DECLARE@backupfileVARCHAR(1024)DECLARE@filenameVARCHAR(1024)DECLARE@pathVARCHAR(1024)DECLARE@dbnameVARC......
  • 批量爬虫采集大数据的技巧和策略分享
    作为一名专业的爬虫程序员,今天主要要和大家分享一些技巧和策略,帮助你在批量爬虫采集大数据时更高效、更顺利。批量爬虫采集大数据可能会遇到一些挑战,但只要我们掌握一些技巧,制定一些有效的策略,我们就能在数据采集的道路上一帆风顺。1、设立合理的请求频率在进行批量爬虫采集时,频繁......
  • 提高批量爬虫工作效率
    提高批量爬虫工作效率大家好!作为一名专业的爬虫程序员,我今天要和大家分享一些关于提高批量爬虫工作效率的实用技巧。无论你是要批量采集图片、文本还是视频数据,这些经验都能帮助你在大规模数据采集中事半功倍。废话不多说,让我们开始吧!1.合理设置爬虫任务——优化数据采集计划在进......
  • 深入理解 Elasticsearch 中的倒排索引与倒排列表
    在现代的后端开发中,搜索引擎已经成为了许多应用不可或缺的一部分。Elasticsearch作为一款强大的搜索引擎和分布式数据存储系统,其背后所使用的核心技术之一就是倒排索引(InvertedIndex)。本文将深入探讨倒排索引的原理,以及在Elasticsearch中如何利用倒排索引进行高效的全文搜索。......