Как можно иметь два столбца в автоинкременте SQL Server? - PullRequest
1 голос
/ 02 сентября 2010

У меня есть два столбца в таблице БД SQL-сервера, которые я хотел бы автоинкрементировать при добавлении новых полей.Однако Managment Studio не позволит мне установить два столбца в IDENTITY.Есть ли другой способ сделать это?

Ответы [ 3 ]

4 голосов
/ 02 сентября 2010

Если вы хотите, чтобы 2-й столбец был в основном зеркалом первого:

ALTER TABLE dbo.myTable ADD
   foo  AS [rowid]
GO

Если вы хотите применить математическую формулу для достижения некоторого смещения:

ALTER TABLE dbo.myTable ADD
    foo  AS ([rowid]+1) * 7 --or whatever you like.
GO
4 голосов
/ 02 сентября 2010

Вы можете сделать второе поле вычисляемым полем на основе первого.

Или сделать триггер INSERT, чтобы программно генерировать значение для второго.

1 голос
/ 16 мая 2016

В таблице может быть только одно поле автоинкремента. Но у вас может быть рассчитанное поле, основанное на поле автоинкремента. Или у вас может быть поле int, где вы управляете последовательностью с помощью кода переднего плана или триггера. А также вы можете использовать последовательность в SQL Server.

CREATE SEQUENCE MySequence START WITH 100;

CREATE TABLE MyTable
(
    RealIdentity INT IDENTITY(1,1),
    RandomCol NVARCHAR(100),
    FakeIdentity INT DEFAULT NEXT VALUE FOR MySequence
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...