Based on this old thread :
Posting this same question on dba.SE.com and I got this response
How To Drop An Unnamed Constraint in SQL Server If you do not specify a name, SQL will generate a random name built from a prefix which denotes the type of constraint, and partial table and column names followed by a random alphanumeric string. It would normally look something like this:
`DF__MyTable__MyColu__3F3159AB `
.
Cleaning Up SQL Server Deployment Scripts in the DRI Objects with "Junk" names section For example, if a Primary Key is created but left unnamed, SQL Server uses a default auto-generated name, PK__TableName__Junk (for example, PK__Customer__A4AE64082CE326F2). This will cause SQL Compare to drop the Primary Key and recreate it, because the Junk portion of its name will be different on different databases. This means that even though there has been no functional change, any change scripts generated using comparison software will, upon every new build, attempt to remove the 'old' constraint and add the 'new' one. Dropping and recreating a primary key on a table can be a very costly operation and since there has been no functional change, one that we can well live without.
.
Dan Jones blog: Best Practice: Naming Constraints The bottom line is don’t be a lazy DBA/Programmer and let the system name your constraints. The few extra taps on the keyboard will be worth it in the long run. In fact, this might become part of my standard arsenal of DBA interview questions: do you name your constraints? Or something like that.