保存数据同时查询保存数据记录的ID,数据id
保存数据时同时取出该数据的记录ID
insert into Table(a,b) values(1,2) select @@identity
首先用一楼的语句查询出最大的那个ID号,然后你增加记录成功后,那么当前增加的那条数据产生的ID号就等于查询出来的那个最大的ID号+1,因为你的ID是自动编号,+1即可。最后你返回那个ID+1的值即可,就是你当前保存的ID号了。
看了你的追问,如果这句语句报错,那么就换一种写法。
select top 1 * FROM 表明 order by id desc
这个是获得表中最大的ID,然后你添加成功后,将获得的这个ID号+1返回即可。
同一个数据库:
insert into b(name0,address0)
select name,address from a where name='某某'
不同数据库(假设数据库名了db):
insert into b(name0,address0)
select name,address from db..a where name='某某'
在不同的服务器上,可以先执行sp_addlinkedserver存储过程添加一个链接服务器:
EXEC master.dbo.sp_addlinkedserver @server = N'link',
@srvproduct=N'SQLNCLI',
@provider=N'SQLNCLI',
@datasrc=N'IP地址'
然后加链接服务器映射登录名:
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'link',@useself=N'False', @locallogin=N'本地登录名',@rmtuser=N'要连接服务器登录名',@rmtpassword='登录密码'
然后就要以插入了:
insert into b(name0,address0)
select name,address from link.db..a where name='某某'