Есть ли способ зарезервировать, пропустить или увеличить значение столбца идентификаторов?
У меня есть две таблицы, объединенные в один-к-одному. Первый из них имеет столбец IDENTITY PK, а второй - int PK (не IDENTITY). Я использовал для вставки в первый, получить идентификатор и вставить во второй. И все работает нормально.
Теперь мне нужно вставить значения во вторую таблицу, не вставляя в первую.
Теперь, как увеличить начальное значение IDENTITY, чтобы я мог вставить его во вторую таблицу, но оставить "дыру" в идентификаторах первой таблицы?
РЕДАКТИРОВАТЬ: Больше информации
Это работает:
-- I need new seed number, but not table row
-- so i will insert foo row, get id, and delete it
INSERT INTO TABLE1 (SomeRequiredField) VALUES ('foo');
SET @NewID = SCOPE_IDENTITY();
DELETE FROM TABLE1 WHERE ID=@NewID;
-- Then I can insert in TABLE2
INSERT INTO (ID, Field, Field) VALUES (@NewID, 'Value', 'Value');
Еще раз - это работает.
Вопрос в том, можно ли получить идентификатор, не вставляя в таблицу?
DBCC необходимы права владельца; есть ли чистый вызываемый пользователем SQL для этого?