㈠ 我想在程序中寫一條sql語句,刪除表中某條信息,然後主鍵id重置,不出
一般是這樣的,
啟動事務,
提交主表,
主表提交不成功,回滾事務,
主表提交成功,取得剛保存的主表D值,提交從表(含主表ID欄位值)
從表提交不成功,回滾事務(主表也將刪除)
從表提交成功,提交事務,完成操作
查詢當然很容易:
SELECT * FROM 主表,從表 where 主表.ID=從表.ID
㈡ sql的自增列如何重置
--操作的過程中,注意一點,標識列自增是不能修改的,那麼首先
--去除該列自增的標識,然後再修改id,成功修改後,再加上標識
--r如果不修改標識,會報錯:「無法更新標識列」
create table #a
(ids int,
names varchar(100)
)
--插入測試數據,序號從100開始的,表示你當前表的情況
declare @a int
set @a=100
while @a<200
begin
insert #a(ids)
select @a
set @a=@a+1
end
--假定還有一個#b表也引用了該序號
--插入測試數據到#b
select ids n_id,names ff into #b from #a
--好,現在開始處理序號問題了,用臨時表#tmp過渡
--這里用了一個標識列,請注意!
--將帶一個新的序列的數據插入到表#tmp中
select identity(int,1,1) flag, * into #tmp from #a
--看看結果是不是有了新的序列了,呵
select * from #tmp
--那麼現在就利用#tmp表來更新所有用到該序列的表
--更新#a
update #a set ids=flag from #a a,#tmp b where a.ids=b.ids
--更新其他表引用了該序列的,比如#b
update #b set n_id=flag from #b a,#tmp b where a.n_id=b.ids
㈢ 我想修改資料庫SQL表中id,怎樣讓它從1開始呢
update tablename set id=rownum
對於rownum來說它是oracle系統順序分配為從查詢返回的行的編號,返回的第一行分配的是1,第二行是2,依此類推,這個偽欄位可以用於限制查詢返回的總行數,且rownum不能以任何錶的名稱作為前綴。
㈣ sql server id 重置
執行
truncate table 表明
可以 清楚所有表中記錄 自增列 重置 成1 開始
表 還在
但是 如果表中有外鍵約束 就不行 最省事的辦法如下:
(從外鍵表 開始 刪除)
右鍵點擊表→編寫表腳本為→DROP和CREATE到→新查詢編輯器窗口
執行~
㈤ 清空SQL資料庫後怎麼讓序列ID重1開始排列
方法和詳細的操作步驟如下:
1、第一步,可以看到一條新記錄已添加到mysql資料庫表中,ID為59818,但顯然只有一條記錄,見下圖,轉到下面的步驟。
㈥ SQL id 重復如何刪除
在 查詢的時候在ID前加 DISTINCT 或是在最後的排序中 GROPU YB id
㈦ sql要將ID為空的重新生成調用一個變數演算法update掉
我不知道你的那個getnewid() 是 什麼 意思 但是 把id為null的給id 循環賦值 可以參考下面的例子
declare @i int --循環增量也是給id賦值
declare @maxid int--id為null的數量
declare @upid--記錄給那個id賦值
set @i=1
select @maxid=count(id) from tb where id is null
begin
while @i<@maxid
select @upid=top @i id from tb where id is null
begin
update tb set id = @i where id = @upid
end
我也沒試 我是菜鳥 但是思路 應該和這個差不多
㈧ 如何手動重置sql 主鍵ID
怎麼重置有標識的主鍵,有時主鍵ID,設置自動增量後,要怎麼重置:如 ID 主用用到SQL的這個功能: dbcc checkident(test, reseed, 0)
㈨ sql server 的id 可以reset嗎
TrancateTable表名
--清空數據表,重置標識列,從標識種子重新開始。
--也就是id自增的從1重新開始
㈩ SQL SERVER 如何修改ID列
ID列是主鍵又是自增長列是不能被修改,如需修改一定要ID自增列功能取消;