Реферат: К вопросу об идентификаторах
-- добавлениеещеоднойзаписи
INSERT INTO Ident_table (some_values) VALUES ('value 7')
-- наслаждениерезультатом...
SELECT @@IDENTITY as [Last ID in session (@@IDENTITY)]
SELECT SCOPE_IDENTITY() as [Last ID in batch (SCOPE_IDENTITY())]
SELECT * FROM Ident_table
--- результат:
Last ID in session (@@IDENTITY)
----------------------------------------
0
Last ID in batch (SCOPE_IDENTITY())
----------------------------------------
9
ID some_values
----------- ----------------------------
... ...
8 value 6
9 value 7
(7 row(s) affected)
IDENT_CURRENT(), в свою очередь, не обращает ни какого внимания ни на сессии, ни на пакеты, а просто возвращает последнее число записанное сервером в автоинкрементное поле в указанной таблице. Естественно, в данном случае запросто можно получить идентификатор, сгенерированный сервером для другой сессии.
--- Session 1: INSERT INTO Ident_table (some_values) VALUES ('value 8') --- Session 2: INSERT INTO Ident_table (some_values) VALUES ('value 9') --- Session 1: SELECT @@IDENTITY as [Last ID in session], SCOPE_IDENTITY() as [Last ID in batch], IDENT_CURRENT('Ident_table') as [Last ID in IdentTable] SELECT * FROM Ident_table К-во Просмотров: 409
Бесплатно скачать Реферат: К вопросу об идентификаторах
|