sqlserver 如果参数为空则不update应该怎么写 5C

sqlserver 我有6个参数 如果这些参数有不为空的就不更新 不然会把原来的数据变成空 用if的话好像条件太复杂了 要怎么搞

 update table1 set a=@a,b=@b,c=@c,d=@d,e=@e,f=@f where ...

5个回答

这个问题提的有些含糊,比如开发平台,语言,框架的背景都没说明。
如果使用了具体的ORM,则不需要逐一判定,会自动组织为更新变化的sql语句;如果sql完全由程序拼写,就需要识别数据
控件的变更集合,动态拼写,这是一个公用方法,里面的基本构成是一个循环+一个判空分支

update table1 set

a=@a


b=@b

where id=

没见过你这个语句,不知道@是什么作用,但是我想都差不多吧

图片说明上面那个不知道咋回事,发个图吧

update table1 set a=@a,b=@b,c=@c,d=@d,e=@e,f=@f where 当哪条不为空你就筛选出来了,比如a,b不为空:update table1 set c=@c,d=@d,e=@e,f=@f where a IS NOT NULL and b IS NOT NULL

update table1 set a=@a,b=@b,c=@c,d=@d,e=@e,f=@f where (a is not null and b is not null and c is not null and d is not null and e is not null and f is not null )
当哪条不为空的时候就不更新,意思就是只有当数据库里所有字段原有的值都不是空值的时候,才更新数据。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如果参数的个数不确定应该怎么写?
好像printf()那样 参数的个数是不确定的`````````
存储过程空参数则不查询
写了一个存储过程,带有多个参数,希望的是如果某个参数为空则不参与查询条件,但测试不成功不知道怎么回事rncreate proc rn@vehicleid nchar(12),rn@dn numeric(8,0)rnas rnselect * from t1 where vehicleid like '%'+ isnull(@vehicleid,vehicleid) +'%' and dn = isnull(@dn,dn)rnrn没有提示错误,只是查询的结果不正确。
mssql的update应该怎么写?
以下是我需求(如果两者不同则赋值,否则就不做赋值操作)rn表:table;列:a;参数:@arnif(a<>@a) set a = @arnelsern returnrnrnps:不要用一下方法:rnupdate tablern set a = @arnwhere XXXrn这个无论a是否等于@a它都会赋值。
如果Session为过期或者为空,强制返回登录页,应该怎么写?在那里写?
required——提交时,如果内容为空,则不允许提交
required——提交时,如果内容为空,则不允许提交,浏览器显示提示信息。
如果文本框内容为空,则不增加新记录,反之增加新记录。请教这个语句怎么写?
库是的id(自动编号)一定要连续。
数据查询后如果结果为空,应该怎么判断呢?
[code=delphi]rn dbconn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\我的文档\Visual Studio 2005\Visualizers\WebSites\WebSite3\成绩单.mdb");rn dbconn.Open();rnrn da = new OleDbDataAdapter(@"SELECT xuesheng.Num_xuesheng, xuesheng.Name_xuesheng, kecheng.Name_kecheng, banji.Name_banji, xuanke.Chengji_xuanke, xuanke.Date_xuanke FROM (banji INNER JOIN ((xuesheng INNER JOIN xuanke ON xuesheng.Num_xuesheng = xuanke.XueshengNum_xuanke) INNER JOIN kecheng ON xuanke.KechengNum_xuanke = kecheng.Num_kecheng) ON banji.Num_banji = xuanke.BanjiNum_xuanke) " + tiaojian, dbconn);rn DataSet di = new DataSet();rn da.Fill(di);rn rn GridView1.DataSource = di;rn GridView1.DataBind();rn dbconn.Close();[/code]rnrn应该判断哪个值?
如果输入可以为空应该怎么写呢?
var regx = /^[1-9][0-9]0,12$/;rn var val = goodsWeigh;rn if(!regx.test(val)|| val!="")rn alert("请输入至少为大于0的整数") rn goodsWeigh.focus(); rn
ORACLE中怎么处理如果参数为空出现异常的情况
oracle中某字段的类型为NUMBER(可以为空)rn用了参数传入,参数值取自文本框,现在的情况是如果文本框内为空,则提交时出现异常(输入字符串的格式不正确。 ),怎么处理此问题呢 ??
求密码为空则不修改方法
[code=Java]rnrnStudent studentid=(Student) request.getSession().getAttribute("Logineduser");rnif(request.getParameter("St_pass")==null)rn rn St_pass=studentid.getPassword();rn rn elsern St_pass=request.getParameter("St_pass");rn rnrnStudentEdit edit=new StudentEdit();rn edit.update(St_pass,Sp_id,St_grade,St_class,St_date,identity_card,St_sex,St_phone,St_email,St_id);rn[/code]rn这样为什么没效果 求更好的方法
asp连接一个sqlserver 数据库的参数应该怎么写啊
用asp 连接一个数据库 数据库为sqlserver,里面的一个数据库名为 uahistroy ,我要rn操纵里面的两个表阿,表名为 registry1,registry2,请大家帮帮我很急啊,应大家帮助我写一个conn.asp文件rn阿rn,谢谢rn,分不够可以再加阿!!谢谢
如果数据源为空?
如果数据源为空,但是想在数据窗口里显示数据为0的行,怎么处理?
检查发现post为空 应该怎么写 求助
新手一个 刚自学了两天 过程中卡在不少地方过 这里是好不容易各种查各种找才搞出来的代码 现在卡在这里 求助啊rn[code=php]rnrn rn Print testrn rn rn rn rn 显示:rn rn rn rn rn objnamern objinforn rn rn rn rn rn rn rn rn rn 点此添加信息rn rn alert('删除成功');history.back();"; rn rn */rn ?>rn rnrn[/code]
if(str2!=null)判断str2为不为空,应该怎么写??
if(str2!=null)判断str2为不为空好象不可以这么写,怎么写对呢,str2为date类型。。
存储过程中判断Select是否为空应该怎么写?
存储过程中判断Select是否为空应该怎么写?我原来用的是游标的方法,但是觉得有一些麻烦。rn比如:rnrnDeclare @number_id intrnDeclare @Temp intrnDeclare employ_cursor cursor forrnSelect number_id From client_info Where number_id = @TemprnOpen employ_cursorrnFetch next from employ_cursorrnInto @TemprnClose employ_cursorrnDeallocate employ_cursorrnrnIf @Temp is nullrn Select @number_id = 0rnElsern Select @number_id = @Temprnrnrn有什么办法能直接判断Select number_id From client_info Where number_id = @Temp为NULL呢?rnrn
如果游标为空?
我在存储过程里面用rnopen v_cur forrn select * from Brn因为B表没有数据 游标返回的就是空rn我在asp.net程序中执行后就死在那了,页面执行很慢,请问如果游标返回为空,在存储过程里该如何做,不要 这样---》dbms_output.put_line(“错误提示”);rnrnrn
SQL的UPDATE语句应该怎么写?
程序运行时提示缺少set关键字,这是为什么??SQL的UPDATE语句应该怎么写呢?我的数据库是oraclernrnrnprocedure TForm1.DBGrid1DblClick(Sender: TObject);rnvarrn str:string;rn fieldname:string;rn id:string;rnbeginrn str:=inputbox('Modify','更改为:',dbgrid1.selectedfield.asstring);rn edit1.text:=str; //获得更改的后的字段rn fieldname:=dbgrid1.SelectedField.FieldName;//获得所点的字段名rn edit2.text:=fieldname;rnrn id:= Oraquery1.Fields[0].asstring; //获得所点的IDrn with Oraquery1 dorn beginrn close;rn with sql dorn beginrn clear;rn add('update polygon set'+fieldname+'=:fieldname where id=:id');rn params[0].AsString:=edit1.Text;rn execsql;rnrn end;rnrnrnrn end;rnrnend;rnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrn
这个Update trigger应该怎么写?
Table Deliveryrn===============rnDeliveryID SupplierIDrn1 2rn2 1rn3 3rnrnTable DeliveryItemrn==================rnDeliveryItemID DeliveryID OrderItemIDrn1 1 1rn2 1 2rn3 2 3rn4 3 4rnrn当用户在表DeliveryItem里插入一条新纪录之后,如果在表Delivery里对应的SupplierID存在的话,那么表Delivery里的SupplierID就不能被修改.rnrn这个trigger应该怎么写?
正则不匹配怎么写?
rn我上面的代码无效,除非写成下面的:rnrnrnrn应该可以直接一个分支写好的吧?
请问sql的update语句应该怎么写?
能举个例子么?
update 的限制条件应该怎么写?
在VC中的一个update语句,rnrnvSQL.Format("update filese set indexct='%s'",strEnd,where Sfileid=count);rnrnSfileid是主码,count是一个int型的数值,rnrn想更新indexstct,条件是在确定的Sfileid下,应该怎么写呢?
”如果数据库取出的记录为空“,这句怎么写?
”如果数据库取出的记录为空“,这句怎么写?
SQL的UPDATE语句应该怎么写?HELP!!!
程序运行时提示缺少set关键字,这是为什么??SQL的UPDATE语句应该怎么写呢?我的数据库是oraclernrnrnprocedure TForm1.DBGrid1DblClick(Sender: TObject);rnvarrn str:string;rn fieldname:string;rn id:string;rnbeginrn str:=inputbox('Modify','更改为:',dbgrid1.selectedfield.asstring);rn edit1.text:=str; //获得更改的后的字段rn fieldname:=dbgrid1.SelectedField.FieldName;//获得所点的字段名rn edit2.text:=fieldname;rnrn id:= Oraquery1.Fields[0].asstring; //获得所点的IDrn with Oraquery1 dorn beginrn close;rn with sql dorn beginrn clear;rn add('update polygon set'+fieldname+'=:fieldname where id=:id');rn params[0].AsString:=edit1.Text;rn execsql;rnrn end;rnrnrnrn end;rnrnend;rnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrn
这个UPDATE语句应该怎么写?
我有一个表:rnrnID namern16001 Arn16002 Brn16003 Crn16101 Drn16102 E rn16201 Frn16202 Grnrn我想把ID前四位是160的改为170其他不变,变成rnID namern17001 Arn17002 Brn17003 Crn16101 Drn16102 E rn16201 Frn16202 Grnrn怎么写UPDATE???rnrnrnrn
这样的update语句应该怎么写,求救!!!!
有两个一样的表A,B,我要把B中的一条记录完全更新A中的一条记录,应该怎么写啊?
update语句应该怎么写?(access)?
我用的access数据库中修改数据,语句如下:rnsql.add(format('update .all set (hyzh,xm)=(''%s'',''%s'') where xm=''%s''',[hyzh.text,xm.text,xg_xm]));rnrn每次运行都报错update语句错误?rn请问错在哪里?
一个UPDATE的语句应该怎么写?
我要更新一个表。rn我是这么写的:rnUPDATE A SET NAME = (SELECT NAME FROM B WHERE CUST_ID = A.CUST_ID)rnrn这样写是错误的。。说有多行结果。。。我应该怎么写呢?rnrn如:rnrn表A rnrnID NAMErn1rn1rn2rn2rn2rn3rn3rn4rn5rnrnrn表BrnrnID NAMErn1 111rn2 222rn3 333rn4 444rn5 555rn6 666rn7 777rn8 888rn9 999rnrnrn结果:rnrnID NAMErn1 111rn1 111rn2 222rn2 222rn2 222rn3 333rn3 333rn4 444rn5 555rnrn这样的应该怎么写呢?
这样一个UPDATE应该怎么写?
y表中有一字段T1,其中值为201153012600001rnrnT1列中只有第一行有一个值201153012600001,其他的为空rnrn怎么让其他为空的行,每一列递增1rnrnupdate Y set T1 = T1 + 1rnrn第二行变为201153012600002rn第三行变为201153012600003rn……
对象参数为怎么写?
rnrnrnrnrn rn ''不起作用?为什么rn
录制参数为空
“工具”——“录制选项”“网络”——“端口映射”“捕获级别”的下拉列表中选择“套接字级别数据和WinINet级别数据”确定重新录制脚本就好了
如果数据库为空怎么判断
各位,我用dataset取出数据库中的记录集,但是正确的可以正常显示,要是返回的记录集为空,怎么处理呀?
这样的语句在SQLSERVER,应该怎么写?
select '语文优秀',min(语文) from (select top 15 percent 语文 from cj order by 语文 desc)rnunion allrn select '数学',min(数学) from (select top 15 percent 数学 from cj order by 数学 desc)rnunion allrn select '英语',min(英语) from (select top 15 percent 英语 from cj order by 英语 desc)rnunion allrn select '生物',min(生物) from (select top 15 percent 生物 from cj order by 生物 desc)rnunion allrn select '政治',min(政治) from (select top 15 percent 政治 from cj order by 政治 desc)rnunion allrn select '历史',min(历史) from (select top 15 percent 历史 from cj order by 历史 desc)rnunion allrn select '物理',min(物理) from (select top 15 percent 物理 from cj order by 物理 desc)rnunion allrn select '化学',min(化学) from (select top 15 percent 化学 from cj order by 化学 desc)rnUNION ALL rnselect '总分',min(总分) from (select top 15 percent 总分 from cj order by 总分 desc)rnunion allrnselect '语文良好分',min(语文) from (select top 40 percent 语文 from cj order by 语文 desc)rnunion allrn select '数学',min(数学) from (select top 40 percent 数学 from cj order by 数学 desc)rnunion allrn select '英语',min(英语) from (select top 40 percent 英语 from cj order by 英语 desc)rnunion allrn select '生物',min(生物) from (select top 40 percent 生物 from cj order by 生物 desc)rnunion allrn select '政治',min(政治) from (select top 40 percent 政治 from cj order by 政治 desc)rnunion allrn select '历史',min(历史) from (select top 40 percent 历史 from cj order by 历史 desc)rnunion allrn select '物理',min(物理) from (select top 40 percent 物理 from cj order by 物理 desc)rnunion allrn select '化学',min(化学) from (select top 40 percent 化学 from cj order by 化学 desc)rnUNION ALL rnselect '总分',min(总分) from (select top 40 percent 总分 from cj order by 总分 desc)rnunion allrnselect '语文及格分',min(语文) from (select top 60 percent 语文 from cj order by 语文 desc)rnunion allrn select '数学',min(数学) from (select top 60 percent 数学 from cj order by 数学 desc)rnunion allrn select '英语',min(英语) from (select top 60 percent 英语 from cj order by 英语 desc)rnunion allrn select '生物',min(生物) from (select top 60 percent 生物 from cj order by 生物 desc)rnunion allrn select '政治',min(政治) from (select top 60 percent 政治 from cj order by 政治 desc)rnunion allrn select '历史',min(历史) from (select top 60 percent 历史 from cj order by 历史 desc)rnunion allrn select '物理',min(物理) from (select top 60 percent 物理 from cj order by 物理 desc)rnunion allrn select '化学',min(化学) from (select top 60 percent 化学 from cj order by 化学 desc)rnUNION ALL select '总分',min(总分) from (select top 60 percent 总分 from cj order by 总分 desc);rnrn以上代码在ACCESS中,可以正常查询。在sqlserver中,应该怎么修改呢?rn
下面的语句在SQLSERVER中应该怎么写
select '语文3',round(sum(iif(语文>=70.5,1,0))/count(*)*100,2) as 优秀率,round(sum(iif(语文>=58,1,0))/count(*)*100,2) as 良好率,round(sum(iif(语文>=48,1,0))/count(*)*100,2) as 及格率,round(avg(语文),2) as 平均分 from cj where 班级='26'rnrnrnrnrn上面的语句在ACCESS中,可以运行。在SQLSERVER中,不能运行,应该怎么修改一下呢?
在sqlserver中存、取图片,应该怎么写?
我在网上找到一段代码:rnrn==========================================================================rn图片数据的存和取示例 rnrn图片数据存入数据库:rnsqlstr="select * from "&tbname&" where id is null"rnset rs=server.createobject("adodb.recordset")rnrs.Open sqlstr,conn,1,3rnrs.AddNew ()rnrs("title")=titlernrs("filename")=filenamernrs("filetype")=filetypernrs("thelevel")=thelevelrnrs("uploaddate")=date()rnrs("uploadip")=request.ServerVariables("REMOTE_ADDR")rnrs("contenttype")=contenttypernrs("data").AppendChunk (binstr)rnrs("size")=sizernrs("offset")=offsetrnrs.Update rnrs.Close()rnrn读取显示:rnrs.Open sqlstr,conn,3rnif not rs.EOF thenrncontenttype=rs("contenttype")rnbinstr=rs("data").GetChunk(rs("size")+rs("offset"))rnif rs("offset")=1 thenrnbinstr=midb(binstr,2)rnend ifrnif instr(contenttype,"text/")=1 or _rninstr(contenttype,"image/")=1 or _rninstr(contenttype,"application/msword")=1 thenrnresponse.contenttype=trim(contenttype)rnresponse.binarywrite binstrrnelsernresponse.addheader "Content-Disposition","attachment;filename="""&rs("filename")&""""rnresponse.contenttype=trim(contenttype)rnresponse.binarywrite binstrrnend ifrnif request("preview")<>"yes" thenrnsqlstr="update "&tbname&" set downtimes=downtimes+1 where id="&fileidrnconn.Execute sqlstrrnend ifrnend ifrn说明:rn对于超长的二进制数据(如图像数据)要使用fieldname.AppendChunk() 和fieldname.GetChunk()来读写rn==========================================================================rnrnrn里面有几处看不太明白:rnrs("data").AppendChunk (binstr)中的 "data"是字段,"binstr"二进制数据是怎么提交过来的,提交页面输入的是图片文件的位置(如c:\test\1.jpg),还是别的?rnrnrn读的时候又怎么知道图片的Size、offset?
请问判断用户输入是否为空 为空就不提交应该怎么写
有一些selectrn如果某个select没有被选中的项rn点提交按钮之后就弹出一个警告rn点了警告之后页面也不提交rn请问应该怎么写rn谢谢
使用存储过程,带的参数为表名。存储过程应该怎么写
使用存储过程,带的参数为表名。存储过程应该怎么写 ?rnrn主要是表名怎么定义。ms sql server 没有此类型
如果声明一个类的数组,应该怎么写??
class f rn class rectposrn int x;rn int y;rn rn rectpos pos[]; <=rnrn fangkuai()rn pos=new rectpos();<=rnrn rnrnrn rn怎么写才能把 pos声明称有4个成员的 rectpos型的数组?? 我写得不好用
如果图片路径为空,则不指定高度的td,高度变为0。怎么好
[code=VBScript]rn<%if rs("news_imgpath")="" then rnrnelse%>rn " width="440" height="330" />rn <%end if%>rn[/code]rnrnthen后面接什么啊。
根据条件查询数据,若参数为空的时候应该怎么写?
rnrn Select * From base_info@dbTest Arn where A.WRITE_TIME>=to_date('startTime','yyyy-mm-dd hh24:mi:ss')rn and A.WRITE_TIME<to_date('endTime','yyyy-mm-dd hh24:mi:ss')+1 rn rn rnrnrnrn我现在需要根据条件参数进行查询,endTime可能为空,这样的话,SQL语句应该如何写? 谢谢
LoadCursor的第二个参数应该怎么写?
我是这样用的:rnmyCursor = LoadCursor(NULL, MAKEINTRESOURCE(IDC_CURSOR1));rnrnIDC_CURSOR1是我自己创建的Cursor资源。rnrn但是,不管用!!!!!!!!!LoadCursor返回FALSE。rn(我还试过LoadCursor(NULL, "IDC_CURSOR1"); 不行)
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件