Well well, another good article. I have been busy reading articles across blogs and enter a word of admiration towards those articles on my blog.
Mariano has come up with information on DEX_ROW_ID, the most famous SQL column on all GP tables. This is an INT IDENTITY column, whose purpose and usage is explained in detail on this article.
I would just like to add one more point (probably couple of points), to substantiate why we should not use the DEX_ROW_ID on reporting or for any other table manipulation.
1. DEX_ROW_ID value is auto-generated by SQL Server. It is not controlled by any routine or process from GP. What does this mean to refer to this column? If you want to use this on your report design, for instance to use this value as a relationship factor, then you are in a trouble. Most of the developers should be knowing this anyways. For those who does not know about it: DEX_ROW_ID cannot be used as a key factor in a Parent – Child relationship. Of course, we cannot do it from Dexterity, but I am talking this from SQL perspective.
2. I have seen several customizations, that deal with moving the records within the table itself for several reasons. I mean, a record will be deleted and the same record would be recreated. In both instances, the DEX_ROW_ID will be different. DEX_ROW_ID is unique across the entire table, even if it means deleting and recreating the same record.
There are so many other points, which proves against using DEX_ROW_ID for our manipulations.
Overall, this is a very good article that we should read.