SQL Server - создайте автоинкрементный уникальный ключ - PullRequest
2 голосов
/ 31 августа 2010

Есть ли способ в SQL Server для создания таблицы с первичным ключом, который сам себя увеличивает? Я искал тип «UniqueIdentifier», но, похоже, он не выполняет то, что я ожидал.

В настоящее время у меня есть что-то вроде этого:

CREATE TABLE [dbo].[MyTable](
        [Date] [datetime] NOT NULL,
    [MyField1] [nchar](50) NOT NULL,
    [MyField2] [nvarchar](max) NULL,
    [Key] [uniqueidentifier] NOT NULL
) ON [PRIMARY]

По сути, я хочу, чтобы KEY начинался с 1 и просто увеличивался для каждой записи.

Ответы [ 2 ]

5 голосов
/ 31 августа 2010

Вы ищете свойство IDENTITY .

Из документации:

Создает в таблице столбец идентификаторов.Это свойство используется с операторами CREATE TABLE и ALTER TABLE Transact-SQL.

IDENTITY [ (seed , increment) ]

seed

Используемое значениедля самой первой строки, загруженной в таблицу.

приращение

Это инкрементное значение, которое добавляется к значению идентичности предыдущей строкикоторый был загружен.

Вы должны указать и начальное значение, и приращение, или ни то, ни другое.Если ни один из них не указан, по умолчанию используется значение (1,1).

Кстати, все это также легко достигается с помощью пользовательского интерфейса mglt сервера Sql.Просто щелкните правой кнопкой мыши на вашем столе и выберите дизайн.Затем выберите правильный столбец и установите свойство IDENTITY.

2 голосов
/ 31 августа 2010

Определите ваш первичный ключ в инструкции оператора create следующим образом:

[Key] [int] IDENTITY (1,1) NOT NULL

...