![]() |
#13 |
Участник
|
Цитата:
В данном случае, например, если таблица tablex имеет триггер на вставку в котором происходит вставка в связанную таблицу, которая тоже имеет поле со свойством Identity, то в результате @@identity вернет не код записи таблицы tablex, а код записи подчиненной таблицы. Поэтому в данном конкретном случае лучше использовать функцию SCOPE_IDENTITY(). Примерно так X++: stringSQL = " set nocount on;" + "\n" + " insert into tablex (name) values ('Name3');" + "\n" + " SELECT NewIdent=SCOPE_IDENTITY()" + ""; rec.open(stringSQL); X++: stringSQL = " set nocount on;" + "\n" + " declare @retVal table(f1 integer)" " insert into tablex (name) output inserted.f1 into @retVal values ('Name3');" + "\n" + " SELECT f1 from @retVal" + ""; rec.open(stringSQL); Другими словами, одной команды INSERT явно не достаточно. Нужно либо писать процедуру, либо посылать повторный запрос для поиска только что вставленной записи. Что для Вас проще и привычнее, то и делайте. |
|
Теги |
ado, insert, odbc, ключ |
|
|