簡體   English   中英

如果記錄在表中,則插入或更新

[英]Insert or update if record is in table

我有一張桌子汽車和CarDescriptions

汽車:IDCar(int,PK,autoincrement)carsDesciptions(IDDescription,Header(nvarchar),Content(nvarchar),idCar(int,FK)

在應用程序中,我正在添加汽車並編輯現有汽車。

我的問題:

1.如何保存更改的汽車與數據庫中的描述?

我有車的ID,我有ID的描述

類CarDescirption沒有像IsChanged這樣的任何池,所以

我不想做這樣的事情:

  1. 從iddes = @ idcar的carsdescriptions中刪除
  2. 插入cardescriptions(,@ Header,@ Content,@ IDCar)

如果在表中,則必須更新記錄,如果表中不存在則必須插入

它具有最好的性能:

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

在SqlServer 2008中有一個UPSERT命令就是這樣做的。 我沒試過。

可能類似於某些修改的東西會起作用

   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)

看看這篇文章,也會給你更多的見解

您首先要進行IF EXISTS以查看表中是否存在記錄。 如果沒有,請插入新車,否則更新現有記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM