?? 自已做標識列的例子.sql
字號:
--自已做標識列的例子:
--創(chuàng)建得到最大id的函數(shù)
create function f_getid()
returns int
as
begin
return(select isnull(max(id),0)+1 from tb)
end
go
--創(chuàng)建表
create table tb(id int default dbo.f_getid() primary key,name varchar(10))
go
--創(chuàng)建觸發(fā)器,在刪除表中的記錄時,自動更新記錄的id(**如果不要此功能,則刪除此觸發(fā)器)
create trigger t_delete on tb
AFTER delete
as
declare @id int,@mid int
select @mid=min(id),@id=@mid-1 from deleted
update tb set id=@id,@id=@id+1 where id>@mid
go
--插入記錄測試
insert into tb(name) values('張三')
insert into tb(name) values('張四')
insert into tb(name) values('張五')
insert into tb(name) values('張六')
insert into tb(name) values('張七')
insert into tb(name) values('張八')
insert into tb(name) values('張九')
insert into tb(name) values('張十')
--顯示插入的結(jié)果
select * from tb
--刪除部分記錄
delete from tb where name in('張五','張七','張八','張十')
--顯示刪除后的結(jié)果
select * from tb
--刪除環(huán)境
drop table tb
drop function f_getid
/*--測試結(jié)果
id name
----------- ----------
1 張三
2 張四
3 張五
4 張六
5 張七
6 張八
7 張九
8 張十
(所影響的行數(shù)為 8 行)
id name
----------- ----------
1 張三
2 張四
3 張六
4 張九
(所影響的行數(shù)為 4 行)
--*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -