Может кто-нибудь предложить лучший метод или сохраненный процесс, который позволяет обновлять каталог.
Скажем, мы получаем новый список адвокатов для камер каждые 2 месяца. Нам нужно
- Вставить новые записи там, где их еще нет - на основе имени, фамилии
- Если они существуют, обновить некоторые поля, которые могут быть пустыми, например, номер телефона
- Установите для любого, которого нет в списке, значение Live = 'N'
Как правило, получение списков в Excel или по электронной почте, поэтому необходимо очистить данные.
select top 0 * into #temp from *table*
Insert new data #temp
If not exists (select * from *table* where forename = 'X' and surname = 'Y' and ChambersID = 12) Insert into *table* (Title, forename, surname, yearofcall, ChambersID) values ('Mr','X', 'Y', 2018, 35) else update *table* set yearofcall = 2018 where forename = 'x' and surname = 'Y' and ChambersID = 12
This seems to work. Then i do another query.
If not exists (select * from #temp where ChambersID = 12) update *table* set live = 'N' where ChambersID = 35
но затянуто долго, так как приходится создавать половину запроса в excel ... гораздо предпочтительнее хранимый процесс, в котором я могу передать имя, фамилию и chambersid