Foxtable(狐表)用户栏目专家坐堂 → 关于sql server触发器的问题


  共有4249人关注过本帖树形打印复制链接

主题:关于sql server触发器的问题

帅哥哟,离线,有人找我吗?
scofields
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:564 积分:4567 威望:0 精华:0 注册:2016/4/17 20:05:00
关于sql server触发器的问题  发帖心情 Post By:2019/9/29 14:18:00 [只看该作者]

 为防止填写者重复填写数据,重复点击数据上传,我的思路是通过在表中创建触发器,可以下触发器,似乎不起作用,怎么修改啊?
ALTER trigger [tri]
on [dbo].[区域日报表]
for insert
as
declare @s datetime
declare @s1 nchar(4)
s elect @s=报表日期,@s1=编码 from inserted
if
(s  elect count(*) from 区域日报表 where 报表日期=@s and 编码=@s1)> 0
begin
rollback transaction
end


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112396 积分:572248 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/29 16:48:00 [只看该作者]

试试

rollback transaction
改为
RAISERROR ('数据不能重复', 16, 10)
rollback 

 回到顶部
帅哥哟,离线,有人找我吗?
scofields
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:564 积分:4567 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2019/9/30 16:41:00 [只看该作者]

 还是不行,不知道哪里出了问题。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112396 积分:572248 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/30 16:51:00 [只看该作者]

我测试了一下,用法没有问题。

到数据库测试,看看结果输出什么内容,是不是数据问题
……
declare @s datetime 
declare @s1 nchar(4)
select @s=报表日期,@s1=编码 from inserted
print @s
print @s1
……

 回到顶部