怎么插入一个列的值等于自动编号列的值?
怎么同时插入一个列的值等于自动编号列的值?
ID CustID
1 1
2 2
3 3
ID为自动编号列 CustID要求insert时候 跟ID一样
------解决方案--------------------你插入前select max(CustID) as xx from xxx
得到这个id最大值然后+1。。
然后再insert
进去
------解决方案--------------------declare @tmp int
set @tmp = (select top 1 (id) from 表 order by id desc)
set @tmp = @tmp + 1
insert 表 (custid) values (@tmp)
------解决方案--------------------写触发器得了
------解决方案--------------------SELECT @@IDENTITY
------解决方案--------------------用程序做循环,估计这种方法是最费资源的了,但是最简单
------解决方案--------------------这个不是很简单吗?用公式啊你CustID公式里填[ID]不就一样拉
------解决方案--------------------给CustID字段设公式
------解决方案--------------------dengenming(佛尔梅罗之鹰) ,realtb(强悍的猪)的方法都不对,如果有最到的那个id被删除,新插入的,会自动跳过删除的ID,所以,我们完全无法预知新插入行的自动编号列是什么。
LZ,既然你要插入相同的列,何苦那,直接用ID不算了?
------解决方案--------------------DECLARE @ID AS INT
insert into tablename(name,...) values(....) 这张表是有自增的表
Select @ID = Scope_Identity()
insert into tablename2(id,name,...) values(@ID, 'aaa ',...)
保证两个同时增加或失败。
------解决方案--------------------两种方法:
1.INSERT INTO jobs (CustID)
VALUES (1)
update jobs set CustID=SELECT @@IDENTITY
where [id]=@@IDENTITY
2.
既然是一样的东西,要留一列得了,可以在显示的时候把它显示出来
select id,id 'cusID '
from ...........
------解决方案--------------------insert into TableName(CustID) values (case @@identity when null then 1 else @@identity+1 end)
------解决方案--------------------yusongkun(九道轮回) 说的对
哎..欠缺考虑
------解决方案--------------------学习
------解决方案--------------------只是不明白,在什么情况下,需要在一个表里有两个内容一样的字段?
------解决方案--------------------declare @tmp int, @tmp1 int, @tmp2 int
set @tmp = (select top 1 (id) from t_userinfo order by id desc)
set @tmp = @tmp + 1
insert t_userinfo (name) values (@tmp)
set @tmp2 = @@identity + 1
set @tmp = (select top 1 (id) from t_userinfo order by id desc)
set @tmp1 = (select top 1 (name) from t_userinfo order by id desc)
if (@tmp <> @tmp1)
begin
delete t_userinfo where id = @tmp
insert t_userinfo (name) values (@tmp2)
end
go