{"id":7533,"date":"2022-05-04T06:03:00","date_gmt":"2022-05-04T04:03:00","guid":{"rendered":"https:\/\/expert-only.com\/?p=7533"},"modified":"2022-12-01T07:40:06","modified_gmt":"2022-12-01T06:40:06","slug":"lister-les-index-sql-server-avec-une-requete","status":"publish","type":"post","link":"https:\/\/expert-only.com\/fr\/t-sql\/lister-les-index-sql-server-avec-une-requete\/","title":{"rendered":"Lister les index SQL server avec une requ\u00eate"},"content":{"rendered":"\n<p><strong>Comment lister tous les index SQL Server d&rsquo;une base de donn\u00e9es ? Il peut \u00eatre tr\u00e8s utile d&rsquo;afficher tous les index de la base de donn\u00e9es. En effet, pour avoir une id\u00e9e en un coup d&rsquo;\u0153il de la fa\u00e7on dont la base de donn\u00e9es SQL Server est optimis\u00e9e avec les index. Et aussi si un index est cluster ou non cluster.<\/strong> <\/p>\n\n\n\n<p>Cette requ\u00eate vous offre une liste synth\u00e9tique des index. Elle montre par exemple si la colonne est une cl\u00e9 primaire, si elle est unique et le type d&rsquo;index utilis\u00e9, cluster ou non cluster.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-comment-lister-tous-les-index-sql-server-avec-une-requete\">Comment lister tous les index SQL Server avec une requ\u00eate ?<\/h2>\n\n\n\n<p>Construire la requ\u00eate en deux \u00e9tapes. Tout d&rsquo;abord, utiliser un CTE (Common Table Expression) pour pr\u00e9parer les donn\u00e9es. Les donn\u00e9es proviennent des diff\u00e9rentes tables du syst\u00e8me comme les index, les colonnes et les tables.<\/p>\n\n\n\n<p>Ensuite, appeler le CTE en utilisant la fonction XML FOR XML PATH. La fonction XML permet de r\u00e9cup\u00e9rer et lister sur une m\u00eame ligne les colonnes utilis\u00e9es dans l&rsquo;index. Il est possible d&rsquo;utiliser une autre fa\u00e7on. En effet, voici comment <strong><a href=\"https:\/\/expert-only.com\/transact-sql\/resultat-de-requete-sql-server-en-ligne-avec-virgules\/\">afficher le contenu d&rsquo;une colonne SQL Server en ligne et avec des virgules<\/a><\/strong>. <\/p>\n\n\n\n<p>Et enfin grouper les donn\u00e9es avec un GROUP BY.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">-- Construire le CTE \u00e0 partir des trois tables syst\u00e8me suivantes : \n-- [sys].[indexes], [sys].[columns] et [sys].[tables]\nWITH LISTE_INDEXS\nAS (\nSELECT\n\tsysidxcol.[index_id] + sysidxcol.[object_id] AS [IndexId],\n\tl_t.[name] AS [Table],\n\tsysidx.[name] AS [Index],\n\tli.[name] AS [Column],\n\tsysidx.[type_desc] AS [Description],\n\tsysidx.[is_primary_key] AS [PrimaryKey],\n\tsysidx.[is_unique] AS [Unique]\n\nFROM [sys].[indexes] sysidx\n\tINNER JOIN [sys].[index_columns] sysidxcol\n\t\tON \tsysidx.[index_id] = sysidxcol.[index_id]\n\t\tAND sysidx.[object_id] = sysidxcol.[object_id]\n\tINNER JOIN [sys].[columns] li\n\t\tON sysidxcol.[column_id] = li.[column_id]\n\t\tAND sysidx.[object_id] = li.[object_id]\n\tINNER JOIN [sys].[tables] l_t\n\t\tON sysidx.[object_id] = l_t.[object_id]\n)\n\n-- Selection of the needed informations\nSELECT \n\tli.[Table],\n\tli.[Index],\n\tli.[Description],\n\tli.[PrimaryKey],\n\tli.[Unique],\n\tSTUFF((SELECT ',' + a.[Column]\n\tFROM LISTE_INDEXS a\n\tWHERE li.[IndexId] = a.[IndexId]\n\tFOR XML PATH('')), 1, 1, '') AS [XMLColumns]\nFROM LISTE_INDEXS li\nGROUP BY li.[IndexId],\n\tli.[Table],\n\tli.[Index],\n\tli.[Description],\n\tli.[PrimaryKey],\n\tli.[Unique]\nORDER BY \n\tli.[Table] ASC,\n\tli.[PrimaryKey] DESC; <\/pre>\n\n\n\n<p>Voici une autre fa\u00e7on de r\u00e9pertorier tous les index d&rsquo;une base de donn\u00e9es SQL Server propos\u00e9e sur <a href=\"https:\/\/stackoverflow.com\/questions\/765867\/list-of-all-index-index-columns-in-sql-server-db\/\" target=\"_blank\" rel=\"noreferrer noopener\">stackoverflow<\/a>.<\/p>\n\n\n\n<p>Pour conclure, cette requ\u00eate affiche une liste de tous les index d&rsquo;une base de donn\u00e9es SQL Server.<\/p>\n\n\n\n<p><strong>Pour aller plus loin, voici cette fois comment lister toutes les tables d&rsquo;une base MS SQL.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-blog-sql-server-et-microsoft-it wp-block-embed-blog-sql-server-et-microsoft-it\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/expert-only.com\/transact-sql\/requete-afficher-liste-tables-base-sql-server\/\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Comment lister tous les index SQL Server d&rsquo;une base de donn\u00e9es ? Il peut \u00eatre tr\u00e8s utile d&rsquo;afficher tous les index de la base de donn\u00e9es. En effet, pour avoir une id\u00e9e en un coup d&rsquo;\u0153il de la fa\u00e7on <a class=\"mh-excerpt-more\" href=\"https:\/\/expert-only.com\/fr\/t-sql\/lister-les-index-sql-server-avec-une-requete\/\" title=\"Lister les index SQL server avec une requ\u00eate\">&#8230;<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":10617,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[396],"class_list":{"0":"post-7533","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-t-sql","8":"tag-liste"},"_links":{"self":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/posts\/7533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/comments?post=7533"}],"version-history":[{"count":0,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/posts\/7533\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/media\/10617"}],"wp:attachment":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/media?parent=7533"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/categories?post=7533"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/tags?post=7533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}