=这个update触发器怎么写?

blackwind 2004-01-04 04:09:03
CREATE TABLE [dbo].[Service_USER] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[YD_LT] [bit] NOT NULL ,
[ServiceName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ServiceID] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Mobile] [char] (11) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Name] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[Corp] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Dept] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[OrderTime] [datetime] NOT NULL ,
[Status] [bit] NOT NULL
) ON [PRIMARY]

如果更新Service_USER这张表的Status字段,从0到1,并且ServiceName=‘企业定制’
则插入一条记录到send_quick表。

CREATE TABLE [dbo].[SEND_QUICK] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[Mobile] [char] (11) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Content] [varchar] (140) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ServiceName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ServiceID] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
) ON [PRIMARY]

要求SEND_QUICK.mobile=Service_USER.mobile,
SEND_QUICK.servicename=Service_USER.servicename,
SEND_QUICK.serviceid=Service_USER.serviceid,
...全文
21 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
newdongkui 2004-01-04
  • 打赏
  • 举报
回复
CREATE TRIGGER updService_USER
ON Service_USER
FOR update AS

IF UPDATE ( Status )
BEGIN
declare @statusold bit,@statusnew bit,@ServiceName varchar(50)

select @statusold = status from deleted
select @statusnew = status ,@ServiceName = ServiceName from inserted

if @statusold =0 and @statusnew = 1 and @ServiceName=‘企业定制’
insert into SEND_QUICK (mobile,servicename,serviceid)
select mobile,servicename,serviceid from inserted

END

wzh1215 2004-01-04
  • 打赏
  • 举报
回复
----符合一条一条的修改
CREATE TRIGGER [TRGNAME] ON [Service_USER]
FOR UPDATE
AS
if update(Status)
begin
if (select status from deleted where ServiceName='企业定制')='0' and (select status from inserted where ServiceName='企业定制')='1'
insert SEND_QUICK(Mobile,Content,ServiceName,ServiceID)
select Mobile,'这里不知楼主想要什么',ServiceName,ServiceID from Inserted
end
dlkfth 2004-01-04
  • 打赏
  • 举报
回复
if update(Status) --是否更新Status列
begin
end

其它的我想你应该会写

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧