自己生成 ID を使用して別の列の同じ行に値を入力するストアド プロシージャを実行したいと考えています。
元:
表: ID、Reference
IDReferenceはオートナンバー、中古品VARCHARですID-CURRENTDATE。
したがって、ID が 230 の場合、insert ステートメントの Ref は になります230-20130225。
これは可能ですか?どうすればこれを達成できますか?
自己生成 ID を使用して別の列の同じ行に値を入力するストアド プロシージャを実行したいと考えています。
元:
表: ID、Reference
IDReferenceはオートナンバー、中古品VARCHARですID-CURRENTDATE。
したがって、ID が 230 の場合、insert ステートメントの 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)))
)
そして、挿入は次のようになります(または、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