1.新建一數(shù)據(jù)表,里面有字段id,將id設(shè)為為主鍵
創(chuàng)新互聯(lián)成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元長海做網(wǎng)站,已為上家服務(wù),為長海各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792
create table tb(id int,constraint pkid primary key (id))
create table tb(id int primary key )
2.新建一數(shù)據(jù)表,里面有字段id,將id設(shè)為主鍵且自動編號
create table tb(id int identity(1,1),constraint pkid primary key (id))
create table tb(id int identity(1,1) primary key )
3.已經(jīng)建好一數(shù)據(jù)表,里面有字段id,將id設(shè)為主鍵
alter table tb alter column id int not null
alter table tb add constraint pkid primary key (id)
4.刪除主鍵
Declare @Pk varChar(100);
Select @Pk=Name from sysobjects where Parent_Obj=OBJECT_ID('tb') and xtype='PK';
if @Pk is not null
exec('Alter table tb Drop '+ @Pk)
SqlServer中的自增的ID的最后的值:
SELECT SCOPE_IDENTITY() --返回插入到同一作用域中的 IDENTITY 列內(nèi)的最后一個 IDENTITY 值。
SELECT @@IDENTITY --返回插入到當(dāng)前會話中任何作用域內(nèi)的最后一個 IDENTITY 列值
SELECT IDENT_CURRENT('TbName')--不受作用域和會話的限制,而受限于指定的表。
IDENT_CURRENT 返回為任何會話和作用域中的特定表所生成的值。
一個作用域就是一個模塊——存儲過程、觸發(fā)器、函數(shù)或批處理。因此,如果兩個語句處于同一個存儲過程、函數(shù)或批處理中,則它們位于相同的作用域中。
對于馬上使用的剛才插入的新記錄ID用SCOPE_IDENTITY()是最合適的;
對于想要得到一系列的操作中最后得到的那個自增的ID最好用@@IDENTITY;
對于想要得到一個表中的最后一個插入操作所產(chǎn)生的ID的最好用IDENT_CURRENT('TBName')
DECLARE @TMP_ID INT
SET @TMP_ID = IDENT_CURRENT('BID_EvaluateItem')
IF ((@TMP_ID IS NOT NULL) AND (@TMP_ID 0))
BEGIN
--其它的操作
END
1、例如給某表添加一個Num自增列,這張表已經(jīng)有很多行數(shù)據(jù)了,通過sqlserver表設(shè)計器,添加一個新字段Num,如圖所示,
2、添加字段后,點擊保存,會彈出一個小框“不允許保存更改。所做的更改要求刪除并重新創(chuàng)建一下表”,這個要求不能滿足啊,這么多的數(shù)據(jù),刪除了怎么辦?
3、點擊SQL Server Management Studio頂部的菜單【工具】-【選項】,
4、打開【選項】彈窗界面如圖所示,默認(rèn)展開的是【常規(guī)】選項,
5、拖動左側(cè)的菜單,找到并點擊【表設(shè)計器】-【表設(shè)計器和數(shù)據(jù)庫設(shè)計器】,
6、在右側(cè)出現(xiàn)的【表選項】中,找到并 取消勾選【阻止保存要求重新創(chuàng)建表的更改】,點擊【確定】按鈕,
7、再次在表設(shè)計界面,點擊保存,如果表中的數(shù)據(jù)量很大的話,會有這個驗證警告:“將定義更改保存到包含有大量數(shù)據(jù)的表中可能需要很長時間”,此項可以忽略,
8、直接點擊【是】按鈕,就可以保存成功了。
你用bigint型,那個比較大,有幾十億;
或者你說是全部刪除,那么你不用delete刪除,用delete刪除的話下次插入是從上次的最大開始加1,你可以用truncate table 表名,這樣的話,每次下標(biāo)都是從1開始。
truncate table 相當(dāng)于重建表結(jié)構(gòu),與表相關(guān)的觸發(fā)器啊之類的都全部相當(dāng)于重建,不會有什么丟失的,那么數(shù)據(jù)也是刪除了的哦,標(biāo)識字段也重新開始哦,而delete只刪除數(shù)據(jù);
如果是表全部清空的話,用truncate table 表名 會更快。