SQL排序自动增删排序
来源:百度知道 编辑:UC知道 时间:2024/05/15 10:32:12
aa 第一位
cc 第二位
dd 第三位
EE 第四位
当删除任一行数据,会得到以下的表
aa 第一位
dd 第二位
EE 第四位
当增加一行数据时,会得以下的表
aa 第一位
cc 第二位
dd 第三位
EE 第四位
FF 第五位
用SQL实现以下工作
当你删除CC这一行数据时,dd 的number字段会变第二位,当你增加一行数据,number字段自动增加为一位。NUMBER字段显示1,2,3,4,也可以,最好能显示字符“第一位”,“第二位”,“第三位”。这样将加奖励分。
create table table1
(
name varchar(100),
number integer
)
//插入触发器
CREATE TRIGGER [trigger_table1_insert] ON [dbo].[table1]
instead of INSERT
AS
declare @i integer
declare @name varchar(100)
DECLARE name_Cursor CURSOR FOR
SELECT name FROM inserted
OPEN name_Cursor
FETCH NEXT FROM name_Cursor into @name
WHILE @@FETCH_STATUS = 0
BEGIN
select @i=max(number) from table1
set @i = isnull(@i,0) + 1
insert into table1 values(@name,@i)
FETCH NEXT FROM name_Cursor into @name
END
CLOSE name_Cursor
DEALLOCATE name_Cursor
GO
//删除触发器
CREATE TRIGGER [trigger_table1_delete] ON [dbo].[table1]
instead of delete
AS
declare @i integer
DECLARE number_Cursor CURSOR FOR
SELECT number FROM deleted
OPEN number_Cursor
FETCH NEXT FROM number_Cursor into @i
WHILE @@FETCH_STATUS = 0
BEGIN
delete table1 wher