㈠ 一個關於sql的問題:用存儲過程添加一條數據,但是想返回它的自增量ID
你可以再程序中,使用parameters[0].Direction = ParameterDirection.Output; 來接收SQL給你返回的值,也可以在存儲過程中最後添加完那裡加入select @@IDENTITY 直接查詢最後一個插入的ID值。
㈡ sql insert into 插入記錄後返回記錄的ID
可以為B表增加一列,存一個唯一的編號,這樣在插入c表的時候用該編號進行關聯。
插入完成後再更新為B表的主鍵即可。
㈢ 如何在sql中插入記錄時返回id
用insert觸發器
create tigger tigger_name
on id
after insert
--思路就是這樣、
㈣ 如何在sql中插入記錄時返回id(id為自動增長)
insert into [table] values(null) select SCOPE_IDENTITY()
重點在插入後面的select
㈤ 使用SQLServer2005插入一條數據時返回當前插入數據的ID
在Insert操作後,進行select 操作 select max(id) from Users
㈥ SQL里如何得到批量插入數據後生成的新的ID
直接獲取是有難度的,但是可以間接獲取,比如先建一張表用來存儲這一批數據的批次ID
DECLARE@BATCHIDINT
CREATETABLETBL_BATCH
(
IDintidentity(1,1),
[DESC]varchar(255)
)
--要進行批量插入時,先插入一條數據到TBL_BATCH表中
INSERTINTOTBL_BATCHVALUES'這批數據的作用:XXX'
--獲取批次ID
SET@BATCHID=@@IDENTITY
--批量插入數據時將@BATCHID一同插入。註:需要先添加一列BATCHID列。
INSERTINTOXXX
SELECT@BATCHID,XXX,XXX,XXXUNION
SELECT@BATCHID,XXX,XXX,XXX
這樣根據@BATCHID就可以查到這批數據的所有自增ID了
㈦ mysql 插入數據後返回主鍵
你可以看看這里,大致有三種辦法:
#方法一是使用last_insert_id
SELECTLAST_INSERT_ID();
#方法二是使用max(id),但是不適用高並發環境下。
方法三是創建一個存儲過程,在存儲過程中調用先插入再獲取最大值的操作
#方法四使用@@identity
select@@IDENTITY
#基本MySQL的學習,可以學習這里。使用MariaDB資料庫管理系統。linuxprobe.com/chapter-18.html
#出處:
㈧ SQL插入一個數據時,如何獲取ID
試試在insert語句最後加上returning id會在插入後返回插入的這條的id,同理,將id換成別的欄位名會返回指定欄位的值。如果你是pg資料庫的話。
㈨ 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;