Добавить комментарий - CodeHelper

Добавить комментарий

Пока как решения на ум пришло использование максимальной блокировке транзакции

Как то так:

DECLARE @maxId int
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
    BEGIN TRANSACTION ins
    	SET @maxId = (SELECT ISNULL(MAX([some_id]),0) + 1
    			FROM [mapping]
    			WHERE [user_id] = @user_id)

    	INSERT INTO [mapping] 
    		([some_id]
    		,[user_id]) 
    	VALUES 
    		(@maxId
    		,@user_id) 
    	SELECT	@id = SCOPE_IDENTITY()
    COMMIT TRANSACTION ins
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

и затем полученный id успользуется при вставке пар ключ->значение в другую таблицу

Внимание! Вы собираетесь отправить информацию от имени анонимного пользователя.
v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.