Реферат: К вопросу об идентификаторах

-- добавлениеещеоднойзаписи

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
Бесплатно скачать Реферат: К вопросу об идентификаторах