1

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

6

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.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy