0

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

前任:

表:IDReference

ID是自动编号,ReferenceVARCHARID-CURRENTDATE.

因此,如果 ID 是 230,对于插入语句,Ref 应该是230-20130225.

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

4

1 回答 1

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)))
)

然后你的插入就像(或者你可以输入一个记录日期)

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
于 2013-02-25T12:11:48.960 回答