SQL Server的資料表中,
有一種類似自動編號的欄位,
那個欄位是自動增長的,一般進行Insert語法的時候是不用特別對該欄位做指定值的輸入
所以通常有人就喜歡拿來當主鍵(例如我)

但是既然是自動編號,
有時候一定有Insert完之後又必須新增的資料取出,
然後又對該列資料做Update的動作。

此時該怎麼辦呢?

答案只要在同一個交易中,撰寫以下SQL語法

select @@identity

自然就會取得剛剛新增資料的自動編號了。

========================Oracle的分隔線========================
Oracle的這種自動編號原理比較不一樣

是採建立SEQUENCE來自動跳號的處理

如果今天建立的SEQUENCE如下(由1開始,每次自動增長1,最小為1,最大為10000000,)

CREATE SEQUENCE MySEQUENCE
MINVALUE 1
MAXVALUE 10000000
START WITH 1
INCREMENT BY 1
NOCACHE

此時應該是先下以下語法取得新的自動編號,指定到變數NewSeqno

select MySEQUENCE.nextval from dual;

再將NewSeqno寫入你想寫入的資料表,這樣就不用怕不知道寫入資料庫的自動編號是什麼

INSERT INTO MyTable(MySEQUENCE, MyNAME) VALUES(NewSeqno, 'Chirs');

 亦可以在新增完成後後,透過以下語法取得目前用號。

SELECT MySEQUENCE.CURRVAL FROM DUAL;

 

 

Access.....我就不會了102_壞大叔.gif

等好心人士告知吧

arrow
arrow
    全站熱搜

    gogo1119 發表在 痞客邦 留言(0) 人氣()