I googled covering index and found:
"A covering index is a special type of composite index, where all of the columns exist in the index."
I understand the main purpose is to make non-clustered index don't lookup clustered Index, and for SQL Server, we can use 'INCLUDE' columns when creating an index, so SQL Server adds them at the leaf level of the index. So there is no need to look up via cluster-index.
But image we have an Customers table(CustID, FirstName, City) that has a clustered Index on CustID.
if we create a non-clustered Index(called IX_FIRSTNAME) on FirstName column, and include this column as payload in the leaf node of the index and query as:
select FirstName from Customers where FirstName Like 'T*';
so in this case, there is no need to look up through clustered Index, so can IX_FIRSTNAME be considered as a covering index?
or it has to meet the requirement for all columns? and we need to create a non-clustered for all three columns to be a covering index?
Customers
table a heap? – Mazhar