如果记录在表中则插入或更新
我有一个表 Cars 和 CarDescriptions
汽车:IDCar(int, PK, 自动增量) 汽车描述(ID描述, 标头(nvarchar),内容(nvarchar),idCar(int,FK)
在应用程序中,我正在添加汽车并编辑现有汽车。
我的问题:
1.如何在数据库中保存更改后的汽车及其描述?
我有汽车的 ID,并且有描述
类的 ID,CarDecirption 没有像 IsChanged 这样的任何池,所以
我不想执行以下操作:
- 从 carsdescriptions 中删除,其中 idcar=@idcar
- 插入到 cardescriptions (, @Header,@内容,@IDCar)
如果表中存在则必须更新记录,如果表中不存在则必须插入记录
I have a tables Cars and CarDescriptions
cars: IDCar(int, PK, autoincrement)
carsDesciptions(IDDescription,
Header(nvarchar),Content(nvarchar),idCar(int,FK)
In application I am adding cars and editing existing ones.
My problems:
1.How to save changed Car with descriptions in database ??
I have ID of Car, and I have ID's of Descriptions
Class CarDescirption doesn't have any pool like IsChanged, so
I don't wanna do something like :
- delete from carsdescriptions where idcar=@idcar
- insert into cardescriptions (, @Header,@Content,@IDCar)
the record must be updated if is in table, and inserted if doesn't exist in table
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
它具有最佳的性能:
It has the best perfomacne:
在 SqlServer 2008 中,有 UPSERT 命令 正是执行此操作。我没试过。
In SqlServer 2008 there is an UPSERT command which does exactly this. I didn't try it.
可能类似的东西经过一些修改就可以工作
也可以看看这篇文章,会给你更多的见解
存在,如果不存在则插入
probably something similar with some modification would work
Have a look at this article as well, will give you more insight
exists, Insert if not
您需要首先执行 IF EXISTS 来查看表中是否存在该记录。如果没有,则插入新车,否则更新现有记录。
You'll want to do a IF EXISTS first to see if the record exists in the table. If it doesn't, INSERT the new car, else UPDATE the existing record.
第一个: http://www.w3schools.com/sql/default.asp
第二个: http:// /weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx
First: http://www.w3schools.com/sql/default.asp
Second: http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx