SQLServer - treat table as index
What you ask for is what we call a &quot;clustered index&quot; in the SQL Server world. The clustered index is the data. I.e., the b-tree for the index is you actual table data.
A clustered index don't have the concept of included columns since all columns are in the clustered index - the clustered index being the data. So you have the key columns (what you use to &quot;drive the query&quot;, like the WHERE clause, so to speak); and the rest of the columns are in the leaf.
You can think of the non-key columns in a clustered index just like included columns in a non-clustered index.
Don't confuse the PK with the clustered index. You decide whether the PK should come with a clustered index or a non-clustered index.
You might have a better candidate for the clustered index than the PK. Fine! Just make the PK non-clustered and create the clustered index on that better candidate.