Skip to content

Instantly share code, notes, and snippets.

@uricken1964
Created December 30, 2024 10:15
Show Gist options
  • Save uricken1964/b3b31b33dadcbc3252ba2488d3c6961c to your computer and use it in GitHub Desktop.
Save uricken1964/b3b31b33dadcbc3252ba2488d3c6961c to your computer and use it in GitHub Desktop.
The given T-SQL code defines a function dbo.get_statistics_columns_info that returns a table with information about statistics and their associated columns for a specified object in a database.
CREATE OR ALTER FUNCTION dbo.get_statistics_columns_info
(
@object_name NVARCHAR(128),
@object_type NVARCHAR(10)
)
RETURNS TABLE
AS
RETURN
(
SELECT TOP 100 PERCENT
s.object_id,
s.stats_id,
s.name AS stats_name,
s.auto_created,
s.has_filter,
s.no_recompute,
c.column_list AS stat_columns
FROM sys.stats AS s
CROSS APPLY
(
SELECT STUFF
(
(
SELECT ',' + CAST(QUOTENAME(c.name) AS VARCHAR(max))
FROM sys.stats_columns AS sc
INNER JOIN sys.columns AS c
ON
(
sc.object_id = c.object_id
AND sc.column_id = c.column_id
)
WHERE sc.object_id = s.object_id
AND sc.stats_id = s.stats_id
ORDER BY
sc.stats_column_id ASC
FOR XML PATH ('')
), 1, 1, ''
)
) AS c (column_list)
WHERE s.object_id = OBJECT_ID(@object_name, @object_type)
OR @object_name IS NULL
ORDER BY
s.object_id,
s.stats_id
);
GO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment