C语言 *** 作MySQL数据库,利用update函数改变表中一个值

C语言 *** 作MySQL数据库,利用update函数改变表中一个值,第1张

age字段是数值类型吗?若是则不应该加‘90’上逗号sql="update my set age=num where id=1";,变量及数据库字段也不要加;字符类型才要加‘?? ’

可以的,如:

--创建函数---------------

create function funDIY(@fieldname as int)

returns int --返回平方

as

begin

return @fieldname2

end

go

--调用函数---------------

update 表 set 字段=dbofunDIY(字段) --注意:dbo 不要漏掉

本文主要主要讲解了SQL Server数据库中函数的两种用法 具体内容请参考下文

◆ 由于update里不能用存储过程 并且由于根据更新表的某些字段还要进行计算 所以很多人采用的是游标的方法 在这里我们可以用函数的方法实现

函数部分

CREATE FUNCTION [DBO] [FUN_GETTIME] (@TASKPHASEID INT)RETURNS FLOAT ASBEGINDECLARE @TASKID INT @HOUR FLOAT @PERCENT FLOAT @RETURN FLOATIF @TASKPHASEID IS NULLBEGINRETURN( )ENDSELECT @TASKID=TASKID @PERCENT=ISNULL(WORKPERCENT )/ FROM TABLETASKPHASEWHERE ID=@TASKPHASEIDSELECT @HOUR=ISNULL(TASKTIME ) FROM TABLETASKWHERE ID=@TASKIDSET @RETURN=@HOUR@PERCENTRETURN (@RETURN)END调用函数的存储过程部分 CREATE PROCEDURE [DBO] [PROC_CALCCA]@ROID INTASBEGINDECLARE @CA FLOATUPDATE TABLEFMECASETCvalue_M= ISNULL(MODERATE )ISNULL(FMERATE )ISNULL(B BASFAILURERATE )[DBO] [FUN_GETTIME](C ID)FROM TABLEFMECA TABLERELATION B TABLETASKPHASE CWHERE ROID=@ROID AND TASKPHASEID=C ID AND B ID=@ROIDSELECT @CA=SUM(ISNULL(Cvalue_M )) FROM TABLEFMECA WHERE ROID=@ROIDUPDATE TABLERELATIONSET CRITICALITY=@CAWHERE ID=@ROIDENDGO

◆ 我们要根据某表的某些记录 先计算后求和 因为无法存储中间值 平时我们也用游标的方法进行计算 但SQL Server 里支持

SUM ( [ ALL DISTINCT ] eXPression )expression

是常量 列或函数 或者是算术 按位与字符串等运算符的任意组合 因此我们可以利用这一功能

函数部分

lishixinzhi/Article/program/SQLServer/201311/22423

以上就是关于C语言 *** 作MySQL数据库,利用update函数改变表中一个值全部的内容,包括:C语言 *** 作MySQL数据库,利用update函数改变表中一个值、SQL 自定义函数使用方式方法。比如我能否这样使用。 update 表 set 字段=函数(字段) 如果可以使用,具体、讲解SQL Server数据库中函数的使用方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9599552.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存