簡體   English   中英

使用auto_increment主鍵在sybase中創建表,截斷表后主鍵不為零

[英]create table in sybase with auto_increment primary key,after truncate the table the primary key is not zero

我在下面的SQL中使用auto_increment主鍵創建了一個表,但是在截斷該表后發現主鍵未重置為零,因為在向其插入數據后主鍵從上次截斷開始繼續增加。 我相信主要對象將太大而不會導致溢出。 怎么解決呢?

CREATE TABLE dbo.BM_SM_ERR
(
    SMCWBM int          identity,   -- primary key
    SMCWDM varchar(10)  NOT NULL,   
    PRIMARY KEY CLUSTERED (SMCWBM)
)
with identity_gap=1

sybase版本Adaptive Server Enterprise 15.7

刪除,截斷表或關閉后,身份不會重置。 如果需要使用sp_chgattribute過程,則必須手動將其重置:

1> insert into BM_SM_ERR(SMCWDM) values ('x')
2> go
(1 row affected)
1> insert into BM_SM_ERR(SMCWDM) values ('y')
2> go
(1 row affected)
1> insert into BM_SM_ERR(SMCWDM) values ('z')
2> go
(1 row affected)
1> select * from BM_SM_ERR
2> go
 SMCWBM      SMCWDM     
 ----------- ---------- 
           1 x          
           2 y          
           3 z          

(3 rows affected)
1> truncate table BM_SM_ERR
2> go
1> insert into BM_SM_ERR(SMCWDM) values ('v')
2> go
(1 row affected)
1> select * from BM_SM_ERR
2> go
 SMCWBM      SMCWDM     
 ----------- ---------- 
           4 v          

(1 row affected)
1> truncate table BM_SM_ERR
2> go
1> exec sp_chgattribute BM_SM_ERR, 'identity_burn_max', 0, '0'
2> go
DBCC execution completed. If DBCC printed error messages, contact a user with System Administrator (SA) role.
'identity_burn_max' attribute of object 'BM_SM_ERR' changed to 0.
(return status = 0)
1> insert into BM_SM_ERR(SMCWDM) values ('q')
2> go
(1 row affected)
1> select * from BM_SM_ERR
2> go
 SMCWBM      SMCWDM     
 ----------- ---------- 
           1 q          

(1 row affected)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM