當前位置:首頁 » 編程語言 » sql返回插入語句的id
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql返回插入語句的id

發布時間: 2022-10-03 01:53:25

A. sql插入一個數據時,如何獲取ID

試試在insert語句最後加上returning id會在插入後返回插入的這條的id,同理,將id換成別的欄位名會返回指定欄位的值。如果你是pg資料庫的話。

B. SQL關於select @@indentity返回剛插入行ID

@@identity是表示的是最近一次向具有identity屬性(即自增列)的表插入數據時對應的自增列的值,是系統定義的全局變數。一般系統定義的全局變數都是以@@開頭,用戶自定義變數以@開頭。比如有個表A,它的自增列是id,當向A表插入一行數據後,如果插入數據後自增列的值自動增加至101,則通過select @@identity得到的值就是101。使用@@identity的前提是在進行insert操作後,執行select @@identity的時候連接沒有關閉,否則得到的將是NULL值。

你的表裡面有自增的列么???

C. sql server返回插入記錄的ID(多條記錄)

你的這個需求好象直接再把記錄插入到表2就可以,但我估計你不是這個意思。

比較笨的辦法,可以定義一個數組用於記錄表1的ID值,或者用個臨時表來記錄表一新增加的記錄ID列表。

insert後,query的指針應該還是停留在最新增加的記錄上的,因此是可以取得到ID值的。

代碼如下,假設表一隻有二個欄位,一個是ID(自動增量),一個是欄位A(字元型),

var
sql:string;
id1:integer;
begin
sql:='insert into 表一 ('''+欄位A+''') values ('''+ '內容'+''')';
query1.close;
query1.sql.clear;
query1.sql.add(sql);
query1.Execsql;
id1:=query1.fieldbyname('id').asinteger;
//接下來可以把ID1的值寫入臨時表或者數組了,如果是需要不同的機器取得ID值,可以用臨時表,不過速度會慢些,如果只是本機取得,就用數組好了。
//後面的代碼略
...
...

end;

上述代碼我沒有條件試,應該可以,另外還可以用append的方法追加記錄,這樣就一定可以用上面的方法取到ID值了。

var
id1:integer;
begin
query1.append;
query1.fieldbyname('欄位A').asstring = '內容';
query1.post;
id1:=query1.fieldbyname('ID').asinteger;
//這種方法一定可以取得到ID值。
//後面你自行對取得的ID進行存儲就行了,臨時表或者數組都可以。代碼略
end;

D. 使用SQLServer2005插入一條數據時返回當前插入數據的ID

在Insert操作後,進行select 操作 select max(id) from Users

E. 如何在insert的同時返回插入記錄的id

在ACCESS資料庫中,不能用SCOPE_IDENTITY或者 LAST_INSERT_ID(),只能用於SQL資料庫中。

還是分兩條語句吧。先取最後一ID號再加1就是要返回的ID,用另一語句存入該ID就可以了。

sql="insert into Proctinfo([ProctName],[CateID]) values('"& ProctName&"',"&CateID&")"
set rs_conn=conn.execute("select top 1 id from Proctinfo order by id desc")
sql_conn="insert into ProctConn([ProID],[CateID]) values("&rs_conn("id")+1&"," & CateID&")"
conn.execute(sql)
conn.execute(sql_conn)

F. MSSQL,如果存在則返回ID,不存在就插入一條並返回新插入行的ID,謝謝!

創建測試表

createtabletest
(idint,
priceint);

創建存儲過程

createprocp_test
(@idint)
as
declare@countint
select@count=count(*)fromtestwhereid=@id
if@count=0
begin
insertintotest(id)values(@id)
select@id
end
else
begin
select@id
end

調用存儲過程

declare
@idint
execp_test5--這個5就是比如你要輸入的那個id

結果你就自己驗證吧,我這沒問題了

G. 如何在sql中插入記錄時返回id(id為自動增長)

insert into [table] values(null) select SCOPE_IDENTITY()
重點在插入後面的select

H. sql insert into 插入記錄後返回記錄的ID

可以為B表增加一列,存一個唯一的編號,這樣在插入c表的時候用該編號進行關聯。
插入完成後再更新為B表的主鍵即可。

I. 問,mysql里怎樣取得剛插入記錄的id

1。MYSQL使用SQL函數LAST_INSERT_ID()獲得剛剛插入的AUTO_INCREACE欄位的ID值。必須前一SQL為一INSERT語句,如果是其他語句,返回的ID值為零。
2。使用Command對象的時候,注意不能關閉對象後再用SELECT LAST_INSERT_ID()函數,這樣獲得的ID值同樣為零。必須是剛INSERT完,而無新的其他語句,也未關閉該對象,立即使用該函數才可正確獲得。範例如下:editQuery = INSERT INTO 表名(。。。列名。。。) VALUES(。。。值名。。。)

J. 如何在sql中插入記錄時返回id

用insert觸發器
create tigger tigger_name
on id
after insert
--思路就是這樣、