Собственно этот пример и демонстрирует различия всех
трех способов получения записанного сервером значения автоинкремента. Эти
способы покрывают практически все потребности в автоинкрементах, которые могут
возникнуть при разработке.
Однако следует учитывать еще ряд нюансов. Во-первых, очевидно, что никто не гарантирует отсутствия «дырок» при автоматической
генерации значений в столбце. А, во вторых, генерация нового значения для
автоинкремента выполняется в не явной автономной транзакции. Это означает, что
если сама по себе операция добавления записи не увенчается успехом, или
транзакция, в которой будет производиться добавление, закончится отменой, то
сервер следующее автоинкрементное значение сгенерирует так, как будто бы
предыдущее добавление новой записи произошло успешно. И таким образом, образуется разрыв в автоматической нумерации.
-- начало транзакции со
вставкой
BEGIN TRAN
INSERT INTO Ident_table (some_values) VALUES
('value 10')
-- откат, новая запись не
добавляется
ROLLBACK
-- А здесь вставка «по
честному»
INSERT INTO Ident_table (some_values) VALUES ('value 11')
-- Смотрим что получилось
SELECT * FROM Ident_table Рекомендуем скачать другие рефераты по теме: скачать доклад на тему, решебник по математике класс виленкин.
Предыдущая страница реферата | 1
2
3
4
5
6
7
8
9
10
11 | Следующая страница реферата
|
|