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