㈠ 一个关于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;