黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

sqlserver的一點新發(fā)現(xiàn)。

系統(tǒng) 2873 0

1. 當表中存儲有大量的數(shù)據(jù)情況下,修改表的主鍵,并設置標識列的方法。

-- 給已經(jīng)存在的字段 Id 添加主鍵約束
ALTER TABLE 表名 ADD 列名 int identity(1,1) primary key

alter table 表名

add constraint pk_id primary key (id);

設置標示列的數(shù)據(jù):

A :有數(shù)據(jù)的話
ALTER TABLE ADD 編號 1 bigint identity(1,1) not null
go

SET IDENTITY_INSERT ON
go

update set 編號 1= 編號
go
SET IDENTITY_INSERT OFF
go

ALTER TABLE DROP COLUMN 編號
go
exec sp_rename . 編號 1, 編號
go

B :無數(shù)據(jù):
ALTER TABLE ADD 編號 1 bigint identity(1,1) not null
go
ALTER TABLE DROP COLUMN 編號
go
exec sp_rename . 編號 1, 編號
go

自增長的表示列的序號的值的修改。

SQLServer 數(shù)據(jù)庫自增長標識列的更新修改操作方法(轉載)
在日常的sql server開發(fā)中,經(jīng)常會用到Identity類型的標識列作為一個表結構的自增長編號。比如文章編號、記錄序號等等。自增長的標識列的引用很大程度上方便了數(shù)據(jù)庫程序的開發(fā),但是有時這個固執(zhí)的字段類型也會帶來一些麻煩。

一、修改標識列字段的值:(在執(zhí)行insert時,將ID手動的 設置成想要的值)
有時,為了實現(xiàn)某個功能,需要修改類型為Identity自增長類型的字段的值,但由于標識的類型所限,這種操作默認是不允許的。比如,目前數(shù)據(jù)庫有10 條正常記錄,引時刪除5條,那么如果再添加數(shù)據(jù)時,自增長的標識列會自動賦值為11,可這時如果想在插入數(shù)據(jù)時給賦值6呢,默認是不允許的。如果說想改變 主鍵標識符的值,完全由自已控制標識字段的插入,方法是有的,如下:
SET IDENTITY_INSERT [TABLE][ON|OFF]
使 用上述語句,可以方便的控制某個表的某個自增長標識列是否自動增長,也就是說是否允許你在inert一條記錄時手動指定主鍵標識列字段的值。


如果指定為ON,則可以insert時指定主鍵標識字段的值,該值不自動增長。如果使用完畢,還需使用這個語句將開關關閉到默認狀態(tài)OFF,不然下次 insert數(shù)據(jù)時該字段還是不會自動增長,要做到有始有終嘛。只是每次插入時都要手動的設置一個主鍵值,示列如下:
set identity_insert? question_title on?? //開啟手動設置
insert into question_title (f_id,f_valid,f_questionTitle) values(6,5,'hello');? //手動的向數(shù)據(jù)庫插入數(shù)據(jù)

二、重置標識列字段值:
當數(shù)據(jù)記錄被刪除一部分后,后面再添加的新數(shù)據(jù)記錄,標識列數(shù)值會有很大的空閑間隔,看上去不是很爽。即使你刪除表中全部記錄,identity標識列的 值還是會無何止的自動增加變大,而不是從頭開始增長。通過下面這條語句可以重置自增長字段的值:
DBCC CHECKIDENT(TABLE,[RESEED|NORESEED],[1])
上述語句把指定表的ID值(種子值)強制重設為1。然而,如果你不想將ID重設為1,你可以用你想用的ID值(種子值)替代第三個參數(shù)。如果你想知道當前的ID值(種子值),而不想重設標識種子,這時你就要用NORESEED,而不用再去設置第三個參數(shù)。


DBCC checkident(question_title,reseed,1)

insert into question_title (f_valid,f_questionTitle) values(5,'hello');

? 如果將表中記錄都刪除后,執(zhí)行上面的一句話,這時ID的自增長值已被重設,再insert插入記錄到數(shù)據(jù)庫時,ID就可以從設置的1開始,以后每次插入的 記錄還是自動增長。
執(zhí)行成功后提示如下:
--檢查標識信息: 當前標識值 '9',當前列值 '1'。
DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯誤信息,請與系統(tǒng)管理員聯(lián)系。

說明:以上顯示數(shù)據(jù)庫某表中當前ID最大值為9,當前設置的ID值為1。

sqlserver的一點新發(fā)現(xiàn)。


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發(fā)表我的評論
最新評論 總共0條評論