以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于sql server触发器的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=141451)

--  作者:scofields
--  发布时间:2019/9/29 14:18:00
--  关于sql server触发器的问题
 为防止填写者重复填写数据,重复点击数据上传,我的思路是通过在表中创建触发器,可以下触发器,似乎不起作用,怎么修改啊?
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


--  作者:有点蓝
--  发布时间:2019/9/29 16:48:00
--  
试试

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

--  作者:scofields
--  发布时间:2019/9/30 16:41:00
--  
 还是不行,不知道哪里出了问题。
--  作者:有点蓝
--  发布时间:2019/9/30 16:51:00
--  
我测试了一下,用法没有问题。

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