Office中国论坛/Access中国论坛

标题: 菜鸟;SQL 触发器使用 [打印本页]

作者: 天涯沦落20131    时间: 2019-3-8 15:52
标题: 菜鸟;SQL 触发器使用
我通过access作前端,数据储存用SQL  server2008R2, 查询“生产数据表”并按月追加数据至另一张“生产数据明细表“,并删除”生产数据表“上月数据;access可以通过查询追加删除完成,;
在网上查了一下,可以用SQL 触发器完成数据的自动更新与删除,但不知道如何编写,请大神们指点!谢谢!
AC查询:
INSERT INTO 生产_数据明细表 ( 生产ID, 输入日期, 生产日期, 机台号, 机台吨位, 班别, 客户, 模号, 周期, 穴数, 工单编号, 产品料号, 品名, 生产数量, 不良品, 打样数量, 生产状态, 计划开机时数, 开机时间, 计划停机时间, 非计划停机时间, 试模时间, 人员工时, 开机员, 试模员, 模具分类, 备注 )
SELECT 生产_数据统计表.生产ID, 生产_数据统计表.输入日期, 生产_数据统计表.生产日期, 注塑机_标准费用.机台号, 注塑机_标准费用.机台吨位, 生产_数据统计表.班别, 模号_统计表.客户, 模号_统计表.模号, 模号_统计表.周期, 模号_统计表.穴数, 生产_数据统计表.工单编号, 产品_信息表.产品料号, 产品_信息表.品名, 生产_数据统计表.生产数量, 生产_数据统计表.不良品, 生产_数据统计表.打样数量, 生产_数据统计表.生产状态, 生产_数据统计表.计划开机时数, 生产_数据统计表.开机时间, 生产_数据统计表.计划停机时间, 生产_数据统计表.非计划停机时间, 生产_数据统计表.试模时间, 生产_数据统计表.人员工时, 生产_数据统计表.开机员, 生产_数据统计表.试模员, 生产_数据统计表.模具分类, 生产_数据统计表.备注
FROM 注塑机_标准费用 INNER JOIN (模号_统计表 INNER JOIN (产品_信息表 INNER JOIN 生产_数据统计表 ON 产品_信息表.产品ID = 生产_数据统计表.产品ID) ON 模号_统计表.模号ID = 生产_数据统计表.模号ID) ON 注塑机_标准费用.机台ID = 生产_数据统计表.机台ID
WHERE (((DateDiff('m',[生产日期],Now()))>=1));
AC删除:
DELETE 生产_数据统计表.*, DateDiff('m',[生产日期],Now()) AS 表达式1
FROM 生产_数据统计表
WHERE (((DateDiff('m',[生产日期],Now()))=1));
作者: tmtony    时间: 2019-3-8 15:56
触发器 有3个,对对应触发器中 添加触发器代码
但一般不太建议用触发器,一是容易带来副作用,二是可能会不小心删除数据
可以用代码 或存储过程 来显式实现较好
作者: roych    时间: 2019-3-11 11:19
其实,打开数据库/可编程性/触发器,就可以看到模板,按模板把各部分替换完就好了。[attach]63286[/attach]
不过我一般是写存储过程的。大体格式如下:
create proc 存储过程名(@变量名 变量类型=null) as
if @变量名=null
set @变量名=值
declare @变量1 变量类型1
declare @变量2 变量类型2
…………………………
set @变量1=值1
set @变量2=值2


begin
执行语句1(例如,delete from 你的表 where 条件1=@变量1)
执行语句2
………………
end
具体请参考以下图片说明:
[attach]63282[/attach]
[attach]63283[/attach]
[attach]63280[/attach]
最后,可能你会问一个问题。那怎么执行存储过程?其实很简单的。我们可以新建一个作业,按向导处理完,加上定时计划就可以自动执行了。
[attach]63285[/attach]
像我这个,是每天凌晨2点执行一次的。
不好意思,讲得有点啰嗦了。


作者: 天涯沦落20131    时间: 2019-3-11 16:30
感谢Roych耐心讲解!Access折腾多年,一直从事生产制造业管理,0基础;现又开始折腾SQL  sever!
目的:个人爱好+前辈们感化(人生需要不断学习进取);对我们这种菜鸟来讲,感谢的细心讲解!同时也感谢这平台!
作者: 天涯沦落20131    时间: 2019-3-11 16:34
天涯沦落20131 发表于 2019-3-11 16:30
感谢Roych耐心讲解!Access折腾多年,一直从事生产制造业管理,0基础;现又开始折腾SQL  sever!
目的:个 ...

我装的SQL  server2008R2免费版:感觉是少了部分功能!未找到作业项,是否安装有问题!
作者: roych    时间: 2019-3-12 11:54
天涯沦落20131 发表于 2019-3-11 16:34
我装的SQL  server2008R2免费版:感觉是少了部分功能!未找到作业项,是否安装有问题!

估计没安装“代理”吧。安装时全部安装就好了。哪些服务不需要,可以自行在控制面板上关闭的。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3