SQL存储过程基于id插入值

时间:2013-02-25 10:55:27

标签: sql sql-server stored-procedures sql-insert

我想运行一个存储过程,该存储过程使用自生成的ID来填充另一列中但在同一行中的值。

EX:

表:IDReference

ID是自动编号,Reference是由VARCHAR组成的ID-CURRENTDATE

因此,如果ID为230,则对于insert语句,Ref应为230-20130225

这是可能的,我怎样才能做到这一点?

1 个答案:

答案 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