During the next many weeks, I plan to publish a short, weekly blog post with a (hopefully) useful code snippet relating to SQL Server Compact. The code snippets will come from 3 different areas: SQL Server Compact T-SQL statements, ADO.NET code and samples usage of my scripting API.
The ROWGUIDCOL column property is defined like this in Books Online:
Indicates that the new column is a row global unique identifier column. Only one uniqueidentifier column per table can be designated as the ROWGUIDCOL column. The ROWGUIDCOL property can be assigned only to a uniqueidentifier column.
ROWGUIDCOL automatically generates values for new rows inserted into the table.
(You can also use a default of NEWID() to automatically assign values to uniqueidentifier columns)
The ROWGUIDCOL is used by Merge Replication, all Merge Replicated tables must have a ROWGUIDCOL column.
Enough talk, show me the code snippet:
SELECT column_flags, column_name, table_name
WHERE column_flags = 378 OR column_flags = 282
I am using the undocumented “column_flags” column to determine the ROWGUIDCOL column, and the reason for the 2 different values is that a uniqueidentifier column can be either NULL or NOT NULL.