sqlserver 触发器问题

Chef策码 2014-01-07 09:51:55
数据库一个表中有两个字段,生产日期和保质期,当保质期剩余三个月的时候,触发器会想另一个表中插入一条数据,数据包括生产日期和保质期还有提示信息“保质期还剩余3个月”,这三个字段 用的是SQL server 2008, 怎么实现这个触发器,求大神指导,谢谢
...全文
64 点赞 收藏 13
写回复
13 条回复
Mr_Nice 2014年01月07日
WHERE DATEDIFF(mm,GETDATE(),保质期)=3 最后这句这个函数也没太懂 当前日期与保质期之间进行计算,如果差值月份(mm)为3个月的话,就取出。 参考看看datediff
回复 点赞
Mr_Nice 2014年01月07日
引用 11 楼 z125512240 的回复:
[quote=引用 7 楼 OrchidCat 的回复:] [quote=引用 4 楼 z125512240 的回复:] [quote=引用 2 楼 OrchidCat 的回复:] [quote=引用 楼主 z125512240 的回复:] 数据库一个表中有两个字段,生产日期和保质期,当保质期剩余三个月的时候,触发器会想另一个表中插入一条数据,数据包括生产日期和保质期还有提示信息“保质期还剩余3个月”,这三个字段 用的是SQL server 2008, 怎么实现这个触发器,求大神指导,谢谢
时间计算,使用作业更加合适。 [/quote] 帮忙写个例子 新手不太会 谢谢[/quote]
INSERT INTO TB2(生产日期,保质期,提醒)
SELECT 生产日期,保质期,'保质期还剩余3个月' AS hint
from dbo.TB
WHERE DATEDIFF(mm,GETDATE(),保质期)=3
参考看看 作业的处理参考http://technet.microsoft.com/zh-cn/library/cc972765(v=ws.10).aspx[/quote] hint 关键字是怎么回事,在网上查没太看懂 WHERE DATEDIFF(mm,GETDATE(),保质期)=3 最后这句这个函数也没太懂 求解 谢谢[/quote]
INSERT INTO TB2(生产日期,保质期,提醒)
SELECT 生产日期,保质期,'保质期还剩余3个月' AS hint  --这个地方hint就是给了个别名,lz可以根据自己喜好来用,比如写成tixing 也行。
from dbo.TB
WHERE DATEDIFF(mm,GETDATE(),保质期)=3
回复 点赞
Chef策码 2014年01月07日
引用 7 楼 OrchidCat 的回复:
[quote=引用 4 楼 z125512240 的回复:] [quote=引用 2 楼 OrchidCat 的回复:] [quote=引用 楼主 z125512240 的回复:] 数据库一个表中有两个字段,生产日期和保质期,当保质期剩余三个月的时候,触发器会想另一个表中插入一条数据,数据包括生产日期和保质期还有提示信息“保质期还剩余3个月”,这三个字段 用的是SQL server 2008, 怎么实现这个触发器,求大神指导,谢谢
时间计算,使用作业更加合适。 [/quote] 帮忙写个例子 新手不太会 谢谢[/quote]
INSERT INTO TB2(生产日期,保质期,提醒)
SELECT 生产日期,保质期,'保质期还剩余3个月' AS hint
from dbo.TB
WHERE DATEDIFF(mm,GETDATE(),保质期)=3
参考看看 作业的处理参考http://technet.microsoft.com/zh-cn/library/cc972765(v=ws.10).aspx[/quote] hint 关键字是怎么回事,在网上查没太看懂 WHERE DATEDIFF(mm,GETDATE(),保质期)=3 最后这句这个函数也没太懂 求解 谢谢
回复 点赞
Mr_Nice 2014年01月07日
引用 7 楼 OrchidCat 的回复:
[quote=引用 4 楼 z125512240 的回复:] [quote=引用 2 楼 OrchidCat 的回复:] [quote=引用 楼主 z125512240 的回复:] 数据库一个表中有两个字段,生产日期和保质期,当保质期剩余三个月的时候,触发器会想另一个表中插入一条数据,数据包括生产日期和保质期还有提示信息“保质期还剩余3个月”,这三个字段 用的是SQL server 2008, 怎么实现这个触发器,求大神指导,谢谢
时间计算,使用作业更加合适。 [/quote] 帮忙写个例子 新手不太会 谢谢[/quote]
INSERT INTO TB2(生产日期,保质期,提醒)
SELECT 生产日期,保质期,'保质期还剩余3个月' AS hint
from dbo.TB
WHERE DATEDIFF(mm,GETDATE(),保质期)=3
参考看看 作业的处理参考http://technet.microsoft.com/zh-cn/library/cc972765(v=ws.10).aspx[/quote] 补充一下
INSERT INTO TB2(产品信息,生产日期,保质期,提醒)
SELECT 产品信息,生产日期,保质期,'保质期还剩余3个月' AS hint
from dbo.TB
WHERE DATEDIFF(mm,GETDATE(),保质期)=3
AND NOT EXISTS(SELECT 1 FROM TB2 WHERE TB.产品信息=TB2.产品信息)  --如果需要排除已经提醒的信息的话
回复 点赞
giftzheng 2014年01月07日
where datediff(month,保质期,getdate())<=3
回复 点赞
giftzheng 2014年01月07日
create proc PROC_插入数据 as begin insert into 新表(字段) select 字段 from 表 where datediff(month,保质期,getdate()) end 建作业 每天执行 PROC_插入数据
回复 点赞
Mr_Nice 2014年01月07日
引用 4 楼 z125512240 的回复:
[quote=引用 2 楼 OrchidCat 的回复:] [quote=引用 楼主 z125512240 的回复:] 数据库一个表中有两个字段,生产日期和保质期,当保质期剩余三个月的时候,触发器会想另一个表中插入一条数据,数据包括生产日期和保质期还有提示信息“保质期还剩余3个月”,这三个字段 用的是SQL server 2008, 怎么实现这个触发器,求大神指导,谢谢
时间计算,使用作业更加合适。 [/quote] 帮忙写个例子 新手不太会 谢谢[/quote]
INSERT INTO TB2(生产日期,保质期,提醒)
SELECT 生产日期,保质期,'保质期还剩余3个月' AS hint
from dbo.TB
WHERE DATEDIFF(mm,GETDATE(),保质期)=3
参考看看 作业的处理参考http://technet.microsoft.com/zh-cn/library/cc972765(v=ws.10).aspx
回复 点赞
Chef策码 2014年01月07日
引用 5 楼 giftzheng 的回复:
看你的保质期数据格式是什么样的
date 类型的 yyyy-mm-dd
回复 点赞
giftzheng 2014年01月07日
看你的保质期数据格式是什么样的
回复 点赞
Chef策码 2014年01月07日
引用 2 楼 OrchidCat 的回复:
[quote=引用 楼主 z125512240 的回复:] 数据库一个表中有两个字段,生产日期和保质期,当保质期剩余三个月的时候,触发器会想另一个表中插入一条数据,数据包括生产日期和保质期还有提示信息“保质期还剩余3个月”,这三个字段 用的是SQL server 2008, 怎么实现这个触发器,求大神指导,谢谢
时间计算,使用作业更加合适。 [/quote] 帮忙写个例子 新手不太会 谢谢
回复 点赞
Chef策码 2014年01月07日
引用 1 楼 giftzheng 的回复:
触发器是在数据修改插入删除的时候触发的 你要写的是一个作业 每天把数据查出来插入就行了
那你能帮我稍微写下不,新手不太会呀
回复 点赞
Mr_Nice 2014年01月07日
引用 楼主 z125512240 的回复:
数据库一个表中有两个字段,生产日期和保质期,当保质期剩余三个月的时候,触发器会想另一个表中插入一条数据,数据包括生产日期和保质期还有提示信息“保质期还剩余3个月”,这三个字段 用的是SQL server 2008, 怎么实现这个触发器,求大神指导,谢谢
时间计算,使用作业更加合适。
回复 点赞
giftzheng 2014年01月07日
触发器是在数据修改插入删除的时候触发的 你要写的是一个作业 每天把数据查出来插入就行了
回复 点赞
发动态
发帖子
疑难问题
创建于2007-09-28

9308

社区成员

12.1w+

社区内容

MS-SQL Server 疑难问题
社区公告
暂无公告