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
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.