SQLSERVER中疏忽索引提醒。本站提示廣大學習愛好者:(SQLSERVER中疏忽索引提醒)文章只能為提供參考,不一定能成為您想要的結果。以下是SQLSERVER中疏忽索引提醒正文
第一步:創立一個表。
create table Test_Table
(
ID number(11) primary key,
Name varchar(50) not null,
Value1 varchar(50) not null
)
第二步:創立一個自增序列以此供給挪用函數。
create sequence AutoID
start with 1 //依據須要本身可修正該數值
increment by 1 //步長值
minvalue 1
nomaxvalue
其實到此步調,曾經可以完成字段自增了。新增記載時看以下代碼:
Insert into Test_Table(ID,Name,Value1)values(AutoID.nextval,'xiyang','blog')
第三步:我們經由過程創立一個觸發器,使挪用的方法加倍簡略。
create trigger AutoID_Trigger
before insert on Test_Table for each row
begin
select AutoID.nextval into :new.ID from dual;
end AutoID_Trigger;
該觸發器在數據庫注冊了表格的偵聽,即當指定表Test_Table拔出記載之前,我們挪用一個序列辦法的nextval取得新值,拔出自增字段。
在觸發器中,我們挪用了體系虛擬表dual,該表作為體系表的一部門,它外部只存儲一筆記錄,我們可以經由過程該表獲得與體系相干的一些信息或許停止一些簡略的邏輯操作。
在該觸發器中,我們應用了dual的一個經典用法,即獲得界說序列的nextval辦法。
經由過程下面三個步調,我們就完成了一個表的字段自增,做拔出操作時履行以下代碼便可:
Insert into Test_Table(Name,Value1) values('xiyang','blog')
經由過程在數據庫中查詢成果集,會發明ID列是自增的。
值得一提的是,在數據庫操作中,觸發器的應用消耗體系資本絕對較年夜。假如關於表容量絕對較小的表格我們可以疏忽觸發器帶來的機能影響。斟酌到年夜表操作的機能成績,
我們盡量的削減觸發器的應用。關於如上操作,我們完整可以擯棄觸發器的應用,直接辦動挪用序列函數便可,如許能夠在法式保護上略微帶來一些未便。