新聞中心
Detail

當(dāng)我們要使用MSSQL在一張表中自動(dòng)增加一個(gè)序號(hào),可以通過(guò)添加一個(gè)帶有上限和起始值的序列號(hào)實(shí)現(xiàn)。然而,當(dāng)序列號(hào)達(dá)到上限,需要定時(shí)重置序列號(hào),這就涉及到自動(dòng)清零MSSQL序列號(hào)。以下就介紹如何使用MSSQL設(shè)置自動(dòng)清零序列號(hào):
首先,在需要設(shè)置序列號(hào)的數(shù)據(jù)庫(kù)中創(chuàng)建序列號(hào),以下是創(chuàng)建序列號(hào)的T-SQL語(yǔ)句:
CREATE SEQUENCE ResetSequence
StartWith 1
IncrementBy 1
MaxValue 1000000
在上述T-SQL中,MaxValue是設(shè)定的序列號(hào)上限,當(dāng)序列號(hào)達(dá)到上限時(shí),可以利用MSSQL建表表達(dá)式,并建立兩個(gè)存儲(chǔ)過(guò)程用于清零計(jì)數(shù)器:
CREATE TRIGGER ResetTrigger
ON TableName
AFTER INSERT,UPDATE
AS
BEGIN
IF @@ROWCOUNT > 0
BEGIN
exec ResetSequence
END
END
CREATE PROCEDURE ResetSequence
AS
BEGIN
IF (select current_value from sys.sequences where name = 'ResetSequence') = (select max_value from sys.sequences where name = 'ResetSequence')
BEGIN
ALTER SEQUENCE ResetSequence
RESTART WITH 1
END
END
上述代碼中,ResetSequence表示序列號(hào)的名稱,可以修改為實(shí)際的序列號(hào)名稱; ResetTrigger表示觸發(fā)實(shí)行ResetSequence的表,可以設(shè)置為插入和更新等。最后,完成上述操作后,我們就可以把這兩個(gè)存儲(chǔ)過(guò)程和觸發(fā)器注冊(cè)到數(shù)據(jù)庫(kù),它們將會(huì)自動(dòng)檢測(cè)到一個(gè)表中列的序列號(hào)達(dá)到上限,并自動(dòng)重置序列號(hào),使此表中的序列號(hào)可以繼續(xù)使用。
以上就是MSSQL自動(dòng)設(shè)置序列號(hào)清零的實(shí)踐詳情,利用T-SQL及存儲(chǔ)過(guò)程,可以在MSSQL中建立一個(gè)能夠自動(dòng)清零的序列號(hào),讓我們省去了不少繁瑣而又有重復(fù)性的工作,節(jié)省時(shí)間和精力。
創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設(shè)公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設(shè),成都品牌網(wǎng)站設(shè)計(jì),成都高端網(wǎng)站制作開(kāi)發(fā),SEO優(yōu)化排名推廣服務(wù),全網(wǎng)營(yíng)銷讓企業(yè)網(wǎng)站產(chǎn)生價(jià)值。
當(dāng)前題目:MSSQL自動(dòng)設(shè)置序列號(hào)清零的實(shí)踐(mssql自動(dòng)編號(hào)清零)
分享URL:http://m.fisionsoft.com.cn/article/ccoiodd.html


咨詢
建站咨詢
