sql 编辑中,要是有数据就update,数据为空就insert into 怎么实现,下图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 编辑中,要是有数据就update,数据为空就insert into 怎么实现,下图相关的知识,希望对你有一定的参考价值。

不知道你什么数据库.

Oracle 9i、DB2 9、 SQL Server 2008 可以使用 MERGE 语句
来完成 “数据已存在就 UPDATE , 数据不存在就 INSERT ”

如果你是 mysql 数据库, 那么可以使用 replace into 语句。
参考技术A 如果你要更新的时整条数据记录的话,你先把原来已有的数据删掉再插入新记录也行,一般还原数据库的时候我们就这么操作的 参考技术B 你所说的有数据是以什么为关键字段啊?追问

时间TM,我写的其中一个值的更新,update ST_RSCPDAY_" + TabYear.ToString() + " set avv=" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + " where (cast(MONTH(TM) as varchar)+ '月' +cast(DAY(TM)as varchar)+'日')='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "' and cast(YEAR(TM) as varchar)='" + y11.SelectedValue + "' and FID='10001' and hepcd='tpw',

追答

我怎么感觉你这有点像VB的编程啊?

另外你的数据库是什么数据库?AC、MYSQL、MSSQL、ORACLE等??

如果是编程的话,那直接用记录集的方式去判断最为简单!

'这里就是SQL语句
if rs.eof and rs.bof then
rs.addnew
end if

追问

数据是sql server,我用的是C#,我发的图里的数据是从数据库读出来的,这个是gridview做的,我 现在添加编辑功能,可以更新数据,应该用update,但是空数据时,就没法更新,应该用insert into了,我不知道怎么组织这个语句

追答

既然编程完成的话,你完全可以抛开传统的update方式,采用记录集的方式来完成你想要的效果。我没有学过C#。给你VB的样式,你应该懂得!

 

set rs=server.CreateObject("adodb.recordset")
sql="select * from 表名 where 字段名=设置的条件"
rs.open sql,conn,1,3
\'以下这句话的意思是指没有找到的时候就采用记录集的addnew方式新增
if rs.eof and rs.bof then
rs.addnew
end if
rs("相关字段名1")=你想要的值
rs("相关字段名2")=你想要的值
rs("相关字段名3")=你想要的值
rs("相关字段名N")=你想要的值
\'以下这句利用记录集的update方式更新
rs.update
\'关闭记录集
rs.close
set rs=nothing

来自:求助得到的回答本回答被提问者采纳
参考技术B 你去查下meger 函数

Access中UPDATE语句一次更新多个数据

RT
想要更新两组数据
------
UPDATE 病人候诊表 SET 病人候诊表.就诊标志 = 'False'
WHERE 病人候诊表.病人序号=([查询下一号]![表达式1]-1)

UPDATE 病人候诊表 SET 病人候诊表.就诊标志 = 'True'
WHERE 病人候诊表.病人序号)=([查询下一号]![表达式1])
------
写成这样会报错

1、首先打开Access,新建一个数据库。

2、然后新建一个数据表,添加数据字段。

3、接着在数据表中添加数据。

4、然后在SQL编辑区域编写Update语句,Update后面加上where做判断。

5、接下来会弹出更新对话框,点击是按钮。

6、最后重新查询数据表的数据,可以看到数据根据判断条件更新了。

参考技术A   access中update语句格式为:
  update <表名> set <字段名1>=<表达式1>[,<字段名2>=<表达式2>[,...]] where <条件>
  举例说明:
  update 成绩 set 语文=语文+10,数学=数学+10 where 性别=“男”
  其功能是将男同学成绩表中的语文、数学各增加10分。
参考技术B 先依次赋值,最后UPDATE
病人候诊表.就诊标志 = 'True'
....其它字段的赋值语句....
病人候诊表.病人序号=([查询下一号]![表达式1]-1)
rs.update本回答被提问者采纳
参考技术C UPDATE 病人候诊表 SET 病人候诊表.就诊标志 = 'False' ,SET 病人候诊表.就诊标志 = 'True'
WHERE 病人候诊表.病人序号=([查询下一号]![表达式1]-1)

逗号隔开就行了
参考技术D 中间加个分号就行了

以上是关于sql 编辑中,要是有数据就update,数据为空就insert into 怎么实现,下图的主要内容,如果未能解决你的问题,请参考以下文章

plsql 中执行UPDATE误操作 怎样回滚。执行update后,并没有点提交,但是我把SQL窗口关掉了,有啥办法?

mysql 如何按月分组查询出当前年度每个月的短信数量(数据库中这个月要是为空的话就用0条怎么显示出来)

这个sql语句怎么写sqlserver

MySql 更新update表中某一个字段记录

SQL数据库如何写判断数据为空就添加内容,有内容就更新,有相同内容就+1,这代码怎么写。

在sqlserver2000中,如果把字段改为不能为空?