I would like to make my UserID column a GUID type and I found these three options. I do not know exactly what is the main difference between them.
Asked
Active
Viewed 204 times
1
-
1If you go with a GUID, `SCOPE_IDENTITY()` and `@@IDENTITY` are immediately out of question, they both deal with `IDENTITY` columns. – Alejandro Dec 10 '18 at 11:13
-
Also, take a look at the (broken) `OUTPUT` clause for retrieving the server-generated ID. – Alejandro Dec 10 '18 at 11:14
1 Answers
1
I think the best version is NEWSEQUENTIALID()
.
->@@IDENTITY
returns the last auto_incremented(identity)
value (even if it is created by a trigger/user defined function).
->SCOPE_IDENTITY()
returns the last identity value created (that is not created by a trigger or an udf).
->NEWSEQUENTIALID()
creates a GUID that is greater than any GUID previously generated by this function on a specified computer since Windows was started. (For more information, see https://learn.microsoft.com/en-us/sql/t-sql/functions/newsequentialid-transact-sql?view=sql-server-2017)

Andrew Fan
- 1,313
- 5
- 17
- 29

Alexandra Harastasan
- 11
- 2