我有一个查询,列出了我的数据库中所有的表以及它们各自的索引:
SELECT
TableName = t.name,
IndexName = ind.name,
IndexId = ind.index_id,
ColumnId = ic.index_column_id,
ColumnName = col.name,
ind.*,
ic.*,
col.*
FROM
sys.indexes ind
INNER JOIN
sys.index_columns ic ON ind.object_id = ic.object_id and ind.index_id = ic.index_id
INNER JOIN
sys.columns col ON ic.object_id = col.object_id and ic.column_id = col.column_id
INNER JOIN
sys.tables t ON ind.object_id = t.object_id
WHERE
ind.is_primary_key = 0
AND ind.is_unique = 0
AND ind.is_unique_constraint = 0
AND t.is_ms_shipped = 0
我得到了这样的输出:
TableName
-> 包含数据库中的表名
ColumName
-> 包含每个表的索引列名称
我的目标是为每个 "TableName" + "ColumnName"
绘制记录的 TOT 数和最后(最大)的 ColumnName 值。
您有任何想法如何在单个查询中递归生成此结果吗?
谢谢!