十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这个类似订单与订单详细记录直接的关系。两个表中的连接条件是设为pcid,int类型,如果更改表1中的总的数量可以使用触发器完成。例句如下:
10年积累的做网站、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有洪江管理区免费网站建设让你可以放心的选择与我们合作。
-----插入触发器
create trigger insert_totalnum
on 表2
for insert
as
declare @newid int
declare @num int
select @newid = pcid,@num = 购买数量 from inserted
update 表1 set 总数量=总数量-@num where pcid=@newid
-----更新触发器,需要计算数量之差
create trigger insert_totalnum
on 表2
for update(购买数量)
as
declare @newid int
declare @newnum int
declare @oldnum int
declare @exc_num int
select @newid = pcid,@newnum = 购买数量 from inserted
select @oldnum = 购买数量 from deleted where pcid=@newid
set @exc_num=@newnum-@oldnum--做减法:如果为负值,将购买数量调小,表1中需要增加;如果为正值,将购买数量调大,表1中需要减少;但在表1中始终是做减法
update 表1 set 总数量=总数量-@exc_num where pcid=@newid
以上基于sqlserver 2000 版本,delete触发器不再给出。
1、语句如下:
select A, B, A-B as C from 表1
2、计算列:
可以使用同一表中的其他列的表达式计算得来。表达式可以是非计算列的列名、常量、函数,也可以是用一个或多个运算符连接的上述元素的任意组合。表达式不能为子查询。
语句中的A-B就是计算列,as C的意思是给这个计算列起个列名叫C。
只要符合上述规则,你可以任意组合字段、运算符等,形成需要的计算列。
扩展资料:
计算列应用范围
计算列可用于选择列表、WHERE 子句、ORDER BY 子句或任何可使用正则表达式的其他位置,但下列情况除外:
用作 CHECK、FOREIGN KEY 或 NOT NULL 约束的计算列必须标记为 PERSISTED。如果计算列的值由具有确定性的表达式定义,并且索引列中允许使用计算结果的数据类型,则可将该列用作索引中的键列,或者用作 PRIMARY KEY 或 UNIQUE 约束的一部分。
例如,如果表中含有整数列 a 和 b,则可以对计算列 a + b 创建索引,但不能对计算列 a + DATEPART(dd, GETDATE()) 创建索引,因为在后续调用中,其值可能发生改变。
计算列不能作为 INSERT 或 UPDATE 语句的目标。
数据库引擎基于使用的表达式自动确定计算列的为 Null 性。即使只有非空列,大多数表达式的结果也“认为”可为空值,因为下溢或溢出生成的结果也可能为空。使用带 AllowsNull 属性的 COLUMNPROPERTY 函数可查明表中任何计算列的为 Null 性。通过指定 ISNULL (check_expression, constant) 可以将可为空值的表达式转换为不可为空值的表达式,其中, constant 是可替换所有空结果的非空值.
参考资料:
百度百科.计算列
sqlserver:
datediff 返回跨两个指定日期的日期和时间边界数。
select datediff(day,'2004-09-01','2004-09-18')
oracle :
用 减号
select sysdate - to_date('2013-07-01','yyyy-mm-dd') from dual
数字型的几种数据类型中,float、double都是有精度的限制的,其计算小数时都是近似值,就会出现这个结果。
decimal、numeric、money不存在精度问题,如果需要的精度较高,建议用这几种。
直接通过“+”、“-”符号运算即可;
sql1:select 11 -5 from dual;结果就是 6;
sql2:select 11+5 from dual;结果就是11;
sql3:select sysdate -sysdate from dual;结果就是 0(时间类型);
解释:能进行加减运行的必须是数值类型number,或者是时间类型。字符串类型无法进行加减。
拓展资料:
SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。
SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。
参考资料:
百度百科词条 结构化查询语言_