Ваші коментарі до двох інших відповідей стверджують, що ви не можете назвати обмеження за замовчуванням, створюючи його "вбудованим". Обидві відповіді показують, що ви, власне, можете вказати ім’я обмеження, створюючи його в рядку. Додам третій приклад, показуючи результати.
IF OBJECT_ID('dbo.Test') IS NOT NULL
DROP TABLE dbo.Test;
CREATE TABLE dbo.Test
(
TestID int NOT NULL
CONSTRAINT PK_Test --here I'm naming the primary key constraint!
PRIMARY KEY CLUSTERED
IDENTITY(1,1)
, SomeData varchar(42) NOT NULL
CONSTRAINT DF_Test_SomeData --this is the name of the default constraint!
DEFAULT ('Carrie Fisher')
);
INSERT INTO dbo.Test DEFAULT VALUES;
Це показує ім'я обмеження за замовчуванням DF_Test_SomeData
:
SELECT TableName = t.name
, ConstraintName = dc.name
FROM sys.default_constraints dc
INNER JOIN sys.tables t ON dc.parent_object_id = t.object_id;
Результати:
Дивлячись на провідник об’єктів у SSMS, відображається назва:
CREATE TABLE ...
заяви. У вас дуже основна синтаксична помилка.