Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как правильней сделать вставку с последующим апдейтом ID во временной таблице  [new]
Kudep
Member

Откуда: From Russia
Сообщений: 146
Есть временная табличка @readyMessages, в котором есть поля PlatformID и Url. Если PlatformID = 0, то нужно сделать вставку в таблицу Platform. После вставки нужно обновить ID в таблице @readyMessages
Пока сделал так:
	if(exists(select 1 from @readyMessages where PlatformID = 0))
	begin
		declare @newPlatforms table(ID bigint, url nvarchar(350))
		insert into dbo.Platform(Url, InWhiteList)
		output inserted.ID, inserted.Url into @newPlatforms
		select m.platformUrl, 0 from @readyMessages m
		where PlatformID = 0
		
		update m
		set PlatformID = p.ID
		from @readyMessages m
		join @newPlatforms as p on p.url = m.platformUrl
	end
Но помоему как-то много запросов получилось. Может есть вариант как по-оптимальней?
18 июл 11, 12:42    [10988639]     Ответить | Цитировать Сообщить модератору
 Re: Как правильней сделать вставку с последующим апдейтом ID во временной таблице  [new]
Glory
Member

Откуда:
Сообщений: 104751
Kudep
Но помоему как-то много запросов получилось. Может есть вариант как по-оптимальней?

Одним запросом выполнить две операции над разными таблицами не выйдет никак
18 июл 11, 12:46    [10988668]     Ответить | Цитировать Сообщить модератору
 Re: Как правильней сделать вставку с последующим апдейтом ID во временной таблице  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Glory
Kudep
Но помоему как-то много запросов получилось. Может есть вариант как по-оптимальней?

Одним запросом выполнить две операции над разными таблицами не выйдет никак
Разве что записать UPDATE в триггер
18 июл 11, 16:09    [10990268]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить