Как прочитать автоматическое увеличение поданных перед вставкой в ​​базу данных - PullRequest
0 голосов
/ 28 мая 2009

У меня есть [UnicLine int identity (1,1)], которое увеличивает его значение

Как я могу прочитать его значение для вставки новой записи в базу данных?

Ответы [ 2 ]

4 голосов
/ 28 мая 2009

Вам это никогда не понадобится, вы можете выводить только что созданный идентификатор, например:

INSERT INTO [table]
SELECT field1, field2;
SELECT SCOPE_IDENTITY();

и получите этот идентификатор в своем ADO / ORM.

Но чтобы ответить на ваш вопрос, вы можете сделать это:

SELECT top 1 [UnicLine] + 1 as newIDValue FROM [table] ORDER BY [UnicLine] DESC;

или просто

SELECT MAX([UnicLine]) + 1 as newIDValue FROM [table]

не как часть вопроса, но прочитайте о

SCOPE_IDENTITY() vs @@IDENTITY vs IDENT_CURRENT('tablename')

чтобы узнать различия и выбрать подходящее для использования_

1 голос
/ 28 мая 2009

Если вы просто хотите увидеть максимальное значение, которое в данный момент находится в таблице, вы можете сделать это:

select max(UnicLine) from mytable

Однако это не обязательно скажет вам, какое будет следующее значение в поле идентификатора. Если бы были вставки, которые были откатаны, идентичность была бы увеличена для каждой, так что ваша следующая вставка могла бы получить значение, которое больше, чем текущий максимум +1. тебе это понадобится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...