Advertisement
Guest User

Полные дубликаты

a guest
May 27th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.31 KB | None | 0 0
  1.  
  2.  
  3. WITH IndexSchema AS (
  4. SELECT i.object_id
  5. ,i.index_id
  6. ,i.name
  7. ,ISNULL(i.filter_definition,'') AS filter_definition
  8. ,i.is_unique
  9. ,(SELECT CASE key_ordinal WHEN 0 THEN NULL ELSE QUOTENAME(CAST(column_id AS VARCHAR)
  10. + CASE WHEN ic.is_descending_key = 1 THEN '-' ELSE '+' END,'(') END
  11. FROM sys.index_columns ic
  12. WHERE ic.object_id = i.object_id
  13. AND ic.index_id = i.index_id
  14. ORDER BY key_ordinal, column_id
  15. FOR XML PATH('')) AS index_columns_keys_ids
  16. ,(SELECT CASE key_ordinal WHEN 0 THEN QUOTENAME(column_id,'(') ELSE NULL END
  17. FROM sys.index_columns ic
  18. WHERE ic.object_id = i.object_id
  19. AND ic.index_id = i.index_id
  20. ORDER BY column_id
  21. FOR XML PATH('')) AS included_columns_ids
  22. FROM sys.tables t
  23. INNER JOIN sys.indexes i ON t.object_id = i.object_id
  24. WHERE i.type_desc IN ('NONCLUSTERED'))
  25. SELECT QUOTENAME(DB_NAME()) AS database_name
  26. ,QUOTENAME(OBJECT_SCHEMA_NAME(is1.object_id)) + '.'
  27. + QUOTENAME(OBJECT_NAME(is1.object_id)) AS object_name
  28. ,is1.name as index_name
  29. ,is2.name as duplicate_index_name
  30. FROM IndexSchema is1
  31. INNER JOIN IndexSchema is2 ON is1.object_id = is2.object_id
  32. AND is1.index_id <> is2.index_id
  33. AND is1.index_columns_keys_ids = is2.index_columns_keys_ids
  34. AND is1.included_columns_ids = is2.included_columns_ids
  35. AND is1.filter_definition = is2.filter_definition
  36. AND is1.is_unique = is2.is_unique
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement