我想运行一个存储过程,它使用自生成的 ID 在另一列但在同一行中填充一个值。
前任:
表:ID
,Reference
ID
是自动编号,Reference
是VARCHAR
由ID-CURRENTDATE
.
因此,如果 ID 是 230,对于插入语句,Ref 应该是230-20130225
.
这可能吗,我怎样才能做到这一点?
我想运行一个存储过程,它使用自生成的 ID 在另一列但在同一行中填充一个值。
前任:
表:ID
,Reference
ID
是自动编号,Reference
是VARCHAR
由ID-CURRENTDATE
.
因此,如果 ID 是 230,对于插入语句,Ref 应该是230-20130225
.
这可能吗,我怎样才能做到这一点?
如果您在 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