Вставьте обновить хранимые процедуры на SQL Server

я написал, что хранимая процедура будет сделать обновление, если запись существует, в противном случае он будет делать вставки. Выглядит это примерно так:

update myTable set Col1=@col1, Col2=@col2 where ID=@ID
if @@rowcount = 0
insert into myTable (Col1, Col2) values (@col1, @col2)

Моя логика писать такое, что обновление будет выполнить неявное выберите с помощью where, и если что возвращает 0, то вставьте состоится.

альтернатива, это было бы сделать выбор и затем, в зависимости от числа строк, возвращаемых либо update или insert. Это неэффективно, потому что я считал, если вы хотите делать обновление, это вызовет 2 выбирает (первые явные выберите вызов и второй неявные в котором обновления). Если proc были для вставки тогда бы никакой разницы в эффективности.

- Это моя логика здесь звучат?Это то, как вы могли бы объединить insert и update в хранимая процедура?

Найдено 11 ответ:

Insert Update stored proc on SQL Server

http://stackoverflow.com/questions/13540/insert-update-stored-proc-on-sql-server

Посмотреть решение →