日期:2014-05-19  浏览次数:20345 次

怎么插入一个列的值等于自动编号列的值?
怎么同时插入一个列的值等于自动编号列的值?

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