| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 406 人关注过本帖
标题:sql查询语句 求助
收藏  订阅  推荐  打印
i63283265
Rank: 1
等级:新手上路
帖子:1
积分:110
注册:2008-10-9
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
事务总是回滚,及时是空表也一样插不进去
2008-10-9 22:00
球球
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:938
积分:9523
威望:18
注册:2005-11-28

for insert as ==>instead of insert

将代码泡到底。。。。。。
2008-10-10 13:31
宠物在线
Rank: 1
等级:新手上路
帖子:10
积分:204
来自:上海
注册:2008-9-20

这个还不是很懂,不过学习了。不知道楼主解决了问题没有?
2008-10-10 15:00
伤狼
Rank: 2
等级:注册会员
帖子:58
积分:668
威望:2
注册:2008-10-10

引用球球的回复  

具体不写
2008-10-10 15:02
ingbingyuw
Rank: 1
等级:新手上路
帖子:8
积分:180
注册:2008-10-12

不是要日期和名称都有才回滚吗?
if exists(select @d1 from inserted where @d1+@d2 in(select date+name from a))
这样才行吧
2008-10-12 23:34
coolma88
Rank: 1
等级:新手上路
帖子:4
积分:142
注册:2008-10-13

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

[ 本帖最后由 coolma88 于 2008-10-15 17:35 编辑 ]
2008-10-14 18:21
nannansun
Rank: 1
等级:新手上路
帖子:11
积分:221
威望:1
注册:2008-10-17

create table a
(date datetime,
name varchar(10),
a3 int)

想问下lz 这样的定义 对吗


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

不知道说的对不。。。
2008-10-17 21:46
共有 405 人关注过本帖
发新话题
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.052721 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved