⑴ MSsql自增序列刪除數據後如何保持完整
不可以,不過可告訴你一個方法,添加一個含特定的ID值的數據
SET IDENTITY_INSERT 表名 ON --自動增長插入無效
按你的題意,可做的工作:
INSERT INTO 表名(ID,……) VALUES(5,……)
SET IDENTITY_INSERT 表名 OFF--自動增長插入有效
有時數據不一定要那麼好看,呵呵,既然你追求那麼好看,就只能想辦法了,呵呵
⑵ sql 表的主鍵是自增序列,如何解決刪除的id...
沒有必要,不連續就不連續。干嗎必要連續。
ID本來就是作為數據的唯一標識用的,只要是唯一的就行,連不連續無所謂。
因為如果連續的話,那麼你每次刪除數據都要進行ID重新排列,這樣當數據較多時,會嚴重影響速度,所以大家都不這樣作。
⑶ 在sql里設置了自增長列,但現在要在刪除數據後這個自增長列還是按順序增長
自增長列 不保證按順序增長 ,所以不可能利用自增長列實現順序增長
如果希望.順序增長需要人為控制,或代碼控制
⑷ SQL語句,刪除重復記錄。
如果按題目那個樣子,這個表只有一個欄位的話樓上的解答應該是合要求的吧。就是選出來存在一個臨時表裡然後再填回去:
select
distinct
test_name
into
#Tmp
from
test1
drop
table
test1
select
*
into
test1
from
#Tmp
drop
table
#Tmp
但是如果按正常的情況下這個表總會有個主鍵什麼的吧?比如說是有個自增的ID欄位。這種情況下就可以:
delete
test1
where
ID
not
in
(select
ID
from
test1
group
by
test_name)
⑸ sql刪除自增長主鍵
有3種方法
truncate table 『你自己的表名稱』
--刪除該表所有的數據
刪除該表重新建
dbcc checkident(『你的表名稱』, reseed, 1)
⑹ sql 自增列刪除
當你插入的時候,自增列的數據可以用SQL語句獲得,比如你插入的時候自增列插入的數為:
declare @add int
select @add=count(*)+1 from 表名
insert into 表名(自增列) values(@add)
這樣就可以了!
⑺ sql中自增列 id,刪除其中一個 ,如何查找被刪除的行
CREATETABLE#test(
idintidentity(1,1),
valint
);
INSERTINTO#testVALUES(101);
INSERTINTO#testVALUES(102);
INSERTINTO#testVALUES(103);
INSERTINTO#testVALUES(104);
INSERTINTO#testVALUES(105);
INSERTINTO#testVALUES(106);
INSERTINTO#testVALUES(107);
GO
SELECT*FROM#test
GO
idval
----------------------
1101
2102
3103
4104
5105
6106
7107
(7行受影響)
DELETEFROM#testWHEREid=2;
DELETEFROM#testWHEREid=5;
DELETEFROM#testWHEREid=6;
GO
SELECT
M.number
FROM
#testtRIGHTJOINmaster..spt_valuesM
ON(M.number=t.id)
WHERE
M.type='P'
ANDM.number>0
ANDM.number<=(SELECTMAX(id)FROM#test)
ANDt.idisnull
GO
number
-----------
2
5
6
(3行受影響)
⑻ SQL自增欄位,有數據刪除後,如何實現自增欄位的連續
對於自增欄位確實有這個問題,也無法改變,這是由於自增欄位的值是內部計算,每使用一次都會自動+1,有點類似線序,你可以使用如下兩種方法解決:
1、自增欄位改為不用手工增加,每次都取最大值+1來存儲
2、不改自增欄位類型,採用邏輯刪除的方法,比如在表中增加一個欄位isdel(1表示已刪除,0或者其它值表示沒有刪除),記錄當前記錄是否屬於刪除狀態,
⑼ sql 裡面 我有三個列 其中ID是自增 但是當我刪除其中一條數據時
把數據導出到別的表備份(可以用select * into 備份表名 from 表名),然後
truncate table 表名
再把數據塞回來(注意ID不要寫在insert 語句里)
insert into 表名(欄位1,欄位2 ) select 欄位1,欄位2 from 備份表名
再drop刪除掉備份表即可
⑽ sql中如何刪除一個表中重復的記錄
sql中刪除一個表中的重復記錄可以採用如下步驟:
1、把a_dist表的記錄用distinct去重,結果放到臨時表中。
select distinct * into #temp from a_dist;
2、把a_dist表的記錄全部刪除。
delete from a_dist;
3、把臨時表中的數據信息導進到a_dist表中,並刪除臨時表。
insert into a_distselect * from #temp;
drop table #temp;
(10)sql自增刪除記錄擴展閱讀:
SQL (結構化查詢語言)是用於執行查詢的語法。在資料庫上執行的大部分工作都由 SQL 語句完成。SQL 語言包含用於更新、插入和刪除記錄的語法。
增刪改查指令構成了 SQL 的 DML 部分:
SELECT- 從資料庫表中獲取數據
UPDATE- 更新資料庫表中的數據
DELETE- 從資料庫表中刪除數據
INSERT INTO- 向資料庫表中插入數據