Sql-server – How SQL Server detects a record internally

database-internalssql server

I am following this SO post where the author (stack programmer) states

SQL server uses the identity column as the key value to refer to a
particular row. So only a single identity column can be created.

He also mentioned that

Also if no identity columns are explicitly stated, Sql server
internally stores a separate column which contains key value for each
row.

Could anyone explain the two points(specially the second one) in more details?

Thanks

Best Answer

Could anyone explain the two points(specially the second one) in more details?

I hope not, since they are both wrong. In SQL Server rows are identified by keys (in B-trees) or by row ids (in heaps). Non-unique clustered indexes have an internal uniqueifier column. The fact that often times an IDENTITY type column is also used as a primary key is orthogonal to the question.

Do not base your knowledge on stuff from posts on forums, including StackOverflow, and including this very post. A good source is the official documentation, eg. Tables and Index Data Structures Architecture. Read a good book, like the SQL Server Internals series.