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