if (Config.DbInfo.DbType.Equals(DBType.SQLServer))
{
sql = " IF EXISTS (SELECT 1 FROM wifi.imsi_model_status WHERE device_id = @device_id and wireless='" + row[].GetString() + "') UPDATE wifi.imsi_model_status SET model_status = @model_status,version=@version,serialnumber=@serialnumber, Log_Time=" + SysConst.time_sqlserver + " WHERE device_id = @device_id and wireless='" + row[].GetString() + "' ELSE INSERT INTO wifi.imsi_model_status(Log_Time, device_id, wireless,model_status,version,serialnumber) VALUES(" + SysConst.time_sqlserver + ", @device_id,'" + row[].GetString() + "', @model_status,@version,@serialnumber)";
cmdParms = new IDataParameter[];
cmdParms[] = new SqlParameter("@device_id", deviceId);
cmdParms[] = new SqlParameter("@model_status", row[].GetString());
cmdParms[] = new SqlParameter("@version", ver);
cmdParms[] = new SqlParameter("@serialnumber", ser);
sqlDic.Add(sql, cmdParms);
}
else if (Config.DbInfo.DbType.Equals(DBType.Oracle))
{
sql = "MERGE INTO wifi.imsi_model_status a USING (select count(*) co from wifi.imsi_model_status WHERE device_id = :device_id and wireless='" + row[].GetString() + "') b ON (b.co<>0) WHEN MATCHED THEN UPDATE SET Log_Time=" + SysConst.time_sql + ",model_status = :model_status,version=:version,serialnumber=:serialnumber WHERE device_id = :device_id and wireless='" + row[].GetString() + "' WHEN NOT MATCHED THEN INSERT (Log_Time, device_id,wireless, model_status,version,serialnumber) VALUES(" + SysConst.time_sql + ", :device_id, '" + row[].GetString() + "',:model_status,:version,:serialnumber)";
cmdParms = new IDataParameter[];
cmdParms[] = new OracleParameter(":device_id", deviceId);
cmdParms[] = new OracleParameter(":model_status", row[].GetString());
cmdParms[] = new OracleParameter(":version", ver);
cmdParms[] = new OracleParameter(":serialnumber", ser);
sqlDic.Add(sql, cmdParms);
}

代码很简单:

1.sqlserver就是使用的exists关键字判断

2.oracle这边就是使用的merge关键字判断

sqlserver核心代码:

if exists (select 1 from Teacher where id='')
update Teacher set name='lisi',addr='重庆' where Id=''
else
insert into Teacher(id,name,addr) values(1,'lisi','重庆')

Oracle核心代码:

MERGE INTO Teacher USING (select count(1) co from Teacher WHERE id='') on(co<>0)
WHEN MATCHED THEN
update set name='lisi',addr='重庆' where Id=''
WHEN NOT MATCHED THEN
insert (id,name,addr) values(1,'lisi','重庆')

最新文章

  1. JBPM工作流
  2. Ubuntu16.04/centos7 下为chrome/firefox安装flash player插件
  3. POJ 3974 回文串-Manacher
  4. sql语句左右表连接理解
  5. 使用git提交本地代码到github
  6. Mysql-字段类型
  7. vim代码补全-spf13,YouCompleteMe
  8. 条件随机场CRF简介
  9. SPOJ--K-query (线段树离线) 离线操作解决一些问题
  10. Oracle字符串分割函数
  11. AngularJS中ng-options简单用法及预选项失败的原因
  12. cpu affinity (亲和性)
  13. 什么是UUID?
  14. C++雾中风景6:拷贝构造函数与赋值函数
  15. 解决Git Revert操作后再次Merge代码被冲掉的问题
  16. apache、nginx、tomcat配置方法
  17. pyqt 不规则形状窗口显示
  18. CS229 6.11 Neurons Networks implements of self-taught learning
  19. Python爬虫:如何爬取分页数据?
  20. Linux系统安装telnet以及xinetd服务

热门文章

  1. P5657 格雷码
  2. CAP理论概述
  3. Python3-list
  4. 状压dp做题笔记
  5. 洛谷P1026 统计单词个数【区间dp】
  6. HDU 6049 - Sdjpx Is Happy | 2017 Multi-University Training Contest 2
  7. 【Wince-截图】对Wince进行截图
  8. Luogu P4141 消失之物 背包 分治
  9. 洛谷 P5174 圆点
  10. 数据结构实验之链表九:双向链表(SDUT 2054)