神啊!救救我!
某表中
AA INT 递增
BB INT
在插入记录时要求AA和BB的值相同
问题点数:50、回复次数:7Top
1 楼OpenVMS(半知半解)回复于 2002-07-31 12:43:54 得分 5
create trigger mytrigger on dbo.table1
for insert
as
update a
set BB=AA
from table1 a,inserted b
where a.AA=b.AA
---or
IF (select AA from inserted)<>(select BB from inserted)
ROLLBACK TRANSTop
2 楼icevi(按钮工厂)回复于 2002-07-31 12:47:06 得分 5
insert into mytable (bb) values (0)
update mytable set bb=@@identity where aa=@@identity
如果对每条记录都是这样的话,且还有其它字段的话,不如用计算列:
create table mytable (aa int identity,bb as aa, cc int )
插入记录时:
insert into mytable (cc) values (0)
Top
3 楼duckcn(duck)回复于 2002-07-31 12:51:31 得分 5
那你把BB也改成递增得了。
or
执行完insert后,执行这一句
update yourtable1 set BB = @@IDENTITY where AA = @@IDENTITY
Top
4 楼landsky(一点浩然气,千里快哉风)回复于 2002-07-31 12:58:20 得分 0
我把问题讲清楚点:
要求在SQL语句中实现,不用TRIGGER.
在以上回复中,都会出现问题.
1.如果在很多人都在等待插入记录
2.如果某条记录插入不成功,如由1001跳到1003.
如何做?Top
5 楼icevi(按钮工厂)回复于 2002-07-31 17:20:00 得分 0
如果用identity这样是正常的,多人操作几乎是不可避免的。Top
6 楼iamxia()回复于 2002-07-31 21:30:04 得分 0
icevi(按钮工厂)的方法
create table mytable (aa int identity,bb as aa, cc int )
难道不行???
Top
7 楼oldsky(九指神丐)回复于 2003-01-09 16:26:44 得分 35
如果是sqlserver2000
执行完insert后,执行这一句
insert yourtable1(BB) values(1)
update yourtable1 set BB = @@IDENT_CURRENT('yourtable1') where AA = @@IDENT_CURRENT('yourtable1')Top




