I just found out that the DML keyword
ROWGUIDCOL is deprecated, replacement is
$rowguid; and that DML
IDENTITYCOL keyword is deprecated, new name is
I don't understand why a non-variable (no dollar sign symbol) DML can be replaced with what is essentially an alias, which if I understand it, will sometimes evaluate back to
ROWGUIDCOL and sometimes to something else?. Can anyone explain what is going on here? What does this deprecation mean?
In AdventureWorks sample, for example, I don't think it means I should do this:
CREATE TABLE [Sales].[Customer] ( [CustomerID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, ... [rowguid] [uniqueidentifier] $rowguid NOT NULL, ... ); GO
The above doesn't work obviously. So what is it saying is deprecated? Clearly not the keyword
I thought when something is deprecated that a new syntax must already exist and this would give me time to transition to a form that won't break in "SQL 2017+".