2010-03-02 2 views
8

У меня есть таблицы Автомобили и CarDescriptionsВставка или обновление, если запись в таблице

автомобилей: IDCar (интермедиат, PK, автоинкремент) carsDesciptions (IDDescription, Header (NVARCHAR), содержание (NVARCHAR), . idCar (интермедиат, FK)

В приложении я добавляю автомобилей и редактирования существующих

Мои проблемы:

1. Как сохранить измененный автомобиль с описаниями в базе данных ??

У меня есть идентификатор автомобиля, и у меня есть корочки Описания

Класс CarDescirption не имеют каких-либо бассейн, как IsChanged, так

Я не хочу делать что-то вроде:

  1. удалить из carsdescriptions где idcar = @ idcar
  2. вставки в cardescriptions (, @ заголовок, @ контента, @ IDCar)

запись должна быть обновлена, если в таблице, и вставляется, если не существует в таблице

+0

В чем вы работаете? –

+0

microsoft sql server 2005 – user278618

ответ

12

Это лучший perfomacne:

UPDATE Table1 SET (...) WHERE Column1='SomeValue' 
IF @@ROWCOUNT=0 
    INSERT INTO Table1 VALUES (...) 
5

вероятно что-то подобное с некоторыми изменениями будет работать

IF EXISTS (SELECt * FORM carsdescriptions WHERE IDCar = @IDCar) 
     UPDATE carsdescriptions 
     SET Header = @Header, Content = @Content 
     WHERE IDCar = @IDCar 
    ELSE 
     INSERT INTO carsdescriptions (IDCar, Header, Content) 
     VALUES (@IDCar, @Header, @Content) 

Посмотрите на эту статью а также, даст вам более глубокое

+0

Я знаю обновление :) – user278618

-1
+0

Это окончательно не очень конкретный ответ на вопрос. –

+0

Очень верно. Поскольку я перечитывал этот вопрос, я вижу, что я его неправильно понял. –

+2

затем удалите это еще его шум – nawfal

0

Вы хотите сделать IF EXISTS первым, чтобы увидеть, если запись существует в таблице. Если это не так, INSERT новый автомобиль, еще ОБНОВЛЯЙТЕ существующую запись.

Смежные вопросы