База - MS SQL 2000
Есть 2 таблицы:
- Код: Выделить всё
 CREATE TABLE [CalendarWatcherMainTable] (
 [ID] [bigint] IDENTITY (1, 1) NOT NULL ,
 [ActionComment] [text] COLLATE Cyrillic_General_BIN NOT NULL CONSTRAINT [DF_CalendarWatcherMainTable_ActionComment] DEFAULT (''),
 CONSTRAINT [PK_CalendarWatcherMainTable] PRIMARY KEY CLUSTERED
 (
 [ID]
 ) ON [PRIMARY]
 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
 
 
 CREATE TABLE [CalendarWatcherSubTable] (
 [ID] [bigint] IDENTITY (1, 1) NOT NULL ,
 [ParentID] [bigint] NOT NULL CONSTRAINT [DF_CalendarWatcherSubTable_ParentID] DEFAULT (0),
 [CodeType] [int] NOT NULL CONSTRAINT [DF_CalendarWatcherSubTable_CodeType] DEFAULT (0),
 [Code] [varchar] (20) COLLATE Cyrillic_General_BIN NOT NULL CONSTRAINT [DF_CalendarWatcherSubTable_Code] DEFAULT ('')
 ) ON [PRIMARY]
Соответственно, ParentID 2-ой таблицы - это значение ID первой.
Теперь задача - вставить одну строку в 1-ю и несколько строк во 2-ю, при этом их ParentID должен совпасть c ID первой таблицы, который просто автоматически увеличивается.
Как после операции INSERT получить присвоенный ID?
Если бы у меня было односеансовое предложение, то просто - последняя строка.
Беда в том, что одновременно может ломиться несколько клиентов, и не факт, что в между инсертом и селектом не затесается еще один инсерт.
Как быть?






