当前位置:首页 » 编程语言 » 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
--思路就是这样、