創(chuàng)建表的時候可以 比如ID列自增
創(chuàng)新互聯(lián)是一家網(wǎng)站設(shè)計(jì)公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營產(chǎn)品:成都響應(yīng)式網(wǎng)站建設(shè)公司、高端網(wǎng)站設(shè)計(jì)、營銷型網(wǎng)站建設(shè)。我們專注企業(yè)品牌在網(wǎng)站中的整體樹立,網(wǎng)絡(luò)互動的體驗(yàn),以及在手機(jī)等移動端的優(yōu)質(zhì)呈現(xiàn)。網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、移動互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運(yùn)營、VI設(shè)計(jì)、云產(chǎn)品.運(yùn)維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場的競爭激烈,認(rèn)真對待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價值服務(wù)。
create table T1
(
id int identity(1,1),
ccode varchar(10),
cname varchar(100)
)
比方說,你要創(chuàng)建一個表user_info,設(shè)置的主鍵名稱是user_id,那么可以如下設(shè)置:
create
table
user_info
(user_id
int
primary
key
identity(1,1),//主鍵初值為1,每次自增1,數(shù)值可變化,但要符合之前定義的類型
user_name
varchar(20)
not
null,
....
)
希望能幫到你!~
select * from A
update A
set [name]='xxx'
where id=1
delete A where id=1
insert into A(id,[name]) values(2,'xxxx')
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
方法如下:
例如:
create table student(
Sno int identity(1,1) primary key,
Sname varchar(100)
)
這樣我們的Sno字段就可以實(shí)現(xiàn)自增了,第一個參數(shù)是標(biāo)識種子(就是開始的值),第二個參數(shù)是標(biāo)識增值(每次增加多少)
這里我們開始為1,每次增加1
如果做插入的話,則:
insert into student values('李四')
注意values里面不要寫自增字段名的值,因?yàn)閿?shù)據(jù)庫會自動幫你生成。
例如第一行為 1 小明
insert into student values('李四')
變?yōu)?1 小明
2 李四
擴(kuò)展資料
SQL SERVER幾種數(shù)據(jù)遷移
使用數(shù)據(jù)庫客戶端(SSMS)的界面工具。右鍵選擇要導(dǎo)出數(shù)據(jù)的數(shù)據(jù)庫,選擇“任務(wù)”——“導(dǎo)出數(shù)據(jù)”,而導(dǎo)入則相反,導(dǎo)入時,SQLServer會默認(rèn)創(chuàng)建一張新表,字段名也默認(rèn)跟導(dǎo)入的Excel標(biāo)題一樣,并且會默認(rèn)字段數(shù)據(jù)類型等。
當(dāng)然在可以在向?qū)нM(jìn)行修改。需要注意的是如果標(biāo)題不是英文而是中文,默認(rèn)創(chuàng)建字段名也是中文,這將給后面數(shù)據(jù)更新操作帶來麻煩,所以最好還是以有意義的英文字段名。把數(shù)據(jù)導(dǎo)入后,再通過執(zhí)行語句,把數(shù)據(jù)插入/更新到業(yè)務(wù)表。
從SQLServer2005開始,可以直接在SSMS上查詢出來的結(jié)果復(fù)制,然后粘貼到Excel上,對于少量數(shù)據(jù)來說,是非常快速方便的,需要注意的是長數(shù)字可能會變成科學(xué)記數(shù)法的形式,提前在Excel上指定列的格式為文本即可。
導(dǎo)入的話,ctrl + c 復(fù)制Excel上的數(shù)據(jù),然后在選擇相關(guān)表,編輯數(shù)據(jù),把數(shù)據(jù)直接粘貼上去即可。但是不建議直接粘貼到業(yè)務(wù)表(如果表是空白沒有數(shù)據(jù),并且字段順序?qū)?yīng),可以這樣操作),而是建議先粘貼到一個新建的中間表中,然后再通過語句,把數(shù)據(jù)插入/更新到業(yè)務(wù)表。
這種方法的導(dǎo)出導(dǎo)入,適合于少量的數(shù)據(jù),如5000行以內(nèi)的記錄,大于5000行以上就不建議了,速度較慢,如果數(shù)據(jù)過大,還一定成功。
參考資料
百度百科——SQL
SqlServer有3種方式設(shè)置自增列,
SSMS中在圖形化界面中建表時,設(shè)置自動增長的其實(shí)值及每次增量。
2. --語句建表時設(shè)置自增列,從1開始增長,每次增加1
create table test(col1 int indentity(1,1,))。
3. --修改列為從1開始增長,每次增加10
alter table test alter col1 int indentity(1,10)。
操作
1、創(chuàng)建一個表?movie,設(shè)置字段 id?具有 identity(1,1),
注:identity(start,step),中的參數(shù)start表示從start開始標(biāo)號,step表示每次遞增的步長數(shù)量
2、當(dāng)我們進(jìn)行插入操作的時候,便會報如下的錯誤;
注:mysql?上是可以這么操作的;
3、解決方法是,在使用前添加一句
SET IDENTITY_Insert movie ON;
注:SET IDENTITY_Insert?table switch?表示是否允許table表中的
identity?字段的插入操作,On表示允許,Off表示不允許
4、有時候?yàn)榱税踩?,會?xí)慣性的在操作前,允許,操作后不允許:
5、注:mssql?目前只允許同時只對一張表進(jìn)行
SET IDENTITY_Insert table?ON;
操作,所以如果考慮到在不同的表之間進(jìn)行操作的話,
需要先把前一張表給OFF?掉;
identity值
查看當(dāng)前表的indentity的值:
dbcc checkident(table, NORESEED)
其中 table?表示的要查看的表, NORESEED表示不會修改該值,
如下圖查詢到的結(jié)果是3
修改當(dāng)前表的 identity?的值
dbcc checkident(table,RESEED,value)
其中:
table?表示的是要修改的表;
RESEED?表示的是identity的值會被修改;
value?表示的是修改后的值;
如下圖所示,是把值修改成1后,查詢的結(jié)果: