Ограничение по умолчанию вашего PRIMARY KEY
не имеет большого смысла. В контексте SQL Server
вы можете создать следующее ограничение по умолчанию, но оно не будет работать:
DROP TABLE IF EXISTS dbo.Sample_Table
CREATE TABLE dbo.Sample_Table (
Id integer PRIMARY KEY DEFAULT 'BASANT',
Name varchar(100) NOT NULL, --COMMENT 'User name',
);
INSERT INTO dbo.Sample_Table (Name)
VALUES ('x')
Сообщение 245, Уровень 16, Состояние 1, Строка 9 Преобразование не удалось при преобразовании значения varchar 'BASANT' для типа данных int.
Почему? Потому что вы не можете установить значение по умолчанию string
для целочисленного столбца.
И событие, если вы сказали, что это число:
DROP TABLE IF EXISTS dbo.Sample_Table
CREATE TABLE dbo.Sample_Table (
Id integer PRIMARY KEY DEFAULT 1,
Name varchar(100) NOT NULL, --COMMENT 'User name',
);
INSERT INTO dbo.Sample_Table (Name)
VALUES ('x');
INSERT INTO dbo.Sample_Table (Name)
VALUES ('x');
Это будет работать только первый раз, второй вы получите:
Сообщение 2627, уровень 14, состояние 1, строка 23 Нарушение ограничения PRIMARY KEY 'PK__Sample_T__3214EC0759729E5E'. Невозможно вставить дубликат ключа в объект 'dbo.Sample_Table'. Значение дубликата ключа (1).
, поскольку значение первичного ключа должно быть уникальным. Вы можете искать что-то вроде этого:
ID INTEGER PRIMARY KEY IDENTITY(1,1)