sql語句解決自增關鍵字重排 初始化問題

2021-09-30 05:19:57 字數 916 閱讀 3303

來自:

將customer替換為自己的表

id為自增欄位

使用sql server的自增功能來管理表的關鍵字,時間久後由於刪除原因id會不連續,如何重新「整理」關鍵字id,使其重新從1開始,並且重置自增初始值為當前記錄個數?

/*允許對系統表進行更新*/

exec sp_configure 'allow updates',1

reconfigure with overridego

/*取消標識列標記 */

update syscolumns set colstat = 0 where id = object_id('dbo.customer') and colstat = 1go

/*所有對記錄的id進行重排*/

update   dbo.customer 

set   id=(select   count(1)   from   dbo.customer   where   id<=t.id)   

from   dbo.customer   tgo

/*得到重排後的記錄總個數*/

declare @a int 

set @a=(select count(*) from dbo.customer)

/*重新設定標識的起始值*/

dbcc checkident (customer, reseed, @a)go

/*恢復標識列標記*/

update syscolumns set colstat = 1 where id = object_id('dbo.customer') and name = 'id'

go  

/*禁止對系統表進行更新*/

exec sp_configure 'allow updates',0

reconfigure with override

關於sql語句查詢 top關鍵字

top關鍵字 1 首先引用一位出錯的例子,sql select top 30 from data where title title1 order by id desc 分析出錯原因 sql語句裡同時存在 where 和top 語句的時候,並且where條件列不是合適的索引,程式執行的是全表掃瞄,首...

使用 EXPLAIN 關鍵字 檢查SQL語句效率

explain詳細說明 通過explain可以知道mysql是如何處理語句,分析出查詢或是表結構的效能瓶頸。通過expalin可以得到 1.表的讀取順序 2.表的讀取操作的操作型別 3.哪些索引可以使用 4.哪些索引被實際使用 5.表之間的引用 6.每張表有多少行被優化器查詢 通過explain s...

jfinal中sql語句中的in關鍵字

1.錯誤寫法 listlist db.find select id from b product detail phone where productid 123 and id not in 147,148 查詢結果包括148,即引數並未全部識別147,148,僅識別了147,無法分辨是幾個引數。正...