标题:sql查询语句 求助
只看楼主
i63283265
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-10-9
 问题点数:0 回复次数:6 
sql查询语句 求助
有1表 a
create table a
(date datetime,
 name varchar(10),
 a3 int)
现写插入触发器,如果表中有相同的日期和名称,则回滚事务,谢谢了
下面是我写的
create trigger tri_insert_a on a
for insert as
declare @d1 datetime,
        @d2 varchar(10),
        @d3 int
select @d1=date,@d2=name,@d3=a3 from inserted
if exists(select @d1 from inserted where @d1 in(select date from a))
begin
    rollback tran                  
end
事务总是回滚,及时是空表也一样插不进去
搜索更多相关主题的帖子: sql 语句 查询 
2008-10-09 22:00
球球
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:1146
专家分:265
注 册:2005-11-28
得分:0 
for insert as ==>instead of insert

好累
2008-10-10 13:31
宠物在线
Rank: 1
来 自:上海
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-9-20
得分:0 
这个还不是很懂,不过学习了。不知道楼主解决了问题没有?
2008-10-10 15:00
伤狼
Rank: 1
等 级:新手上路
威 望:2
帖 子:58
专家分:0
注 册:2008-10-10
得分:0 
引用球球的回复  

具体不写
2008-10-10 15:02
ingbingyuw
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-10-12
得分:0 
不是要日期和名称都有才回滚吗?
if exists(select @d1 from inserted where @d1+@d2 in(select date+name from a))
这样才行吧
2008-10-12 23:34
coolma88
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-10-13
得分:0 
create trigger tri_insert_a on a
for insert as
if ((select top 1 count(*) from a group by name,date order by count(*) desc)>=2)
begin
    rollback tran                  
end

[[it] 本帖最后由 coolma88 于 2008-10-15 17:35 编辑 [/it]]
2008-10-14 18:21
nannansun
Rank: 1
等 级:新手上路
威 望:1
帖 子:11
专家分:0
注 册:2008-10-17
得分:0 
create table a
(date datetime,
name varchar(10),
a3 int)

想问下lz 这样的定义 对吗


我们现在学的貌似 name 过不去吧。。。因为变成蓝色的了。 不可以做成列的名字吧。。。

不知道说的对不。。。
2008-10-17 21:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-237301-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.531561 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved