我想运行一个存储过程,该存储过程使用自生成的ID来填充另一列中但在同一行中的值。
EX:
表:ID
,Reference
ID
是自动编号,Reference
是由VARCHAR
组成的ID-CURRENTDATE
。
因此,如果ID为230,则对于insert语句,Ref应为230-20130225
。
这是可能的,我怎样才能做到这一点?
答案 0 :(得分:1)
如果您使用的是sql-server,则可以使用computed column
。
create table myTable (
id int identity (1,1) not null,
name varchar(50) not null,
recordDate date default getdate(),
reference as ((convert(varchar,[id1],(0)) + '-') + convert(varchar,recordDate,(112)))
)
然后你的插入就像(或者你可以输入recordDate)
insert into myTable (name)
values ('xyz')
如果您无法更改表格,请尝试(在存储过程中);
declare @recordId int
insert into myTable (name)
values ('xyz')
select @recordId = scope_identity()
update myTable set reference = convert(varchar, @recordId) + '-' +
convert(varchar, getdate(), 112)
where id = @recordId