tsql - Add Year Prefix in auto generated id which is a primary key -
tsql - Add Year Prefix in auto generated id which is a primary key -
i want id autogenerated , want format this:
12-0001, 12-0002 12 represent year 2012 current year of scheme date.
and lastly record id 12-0999 , when 2013 comes want id alter year prefix , reset 4 digit this:
13-0001, 13-0002. i'm using asp.net mvc 3 , sql server express 2008.
can tell me of way can this.
i see 2 options:
(1) if table you're inserting info has date or datetime column has "right" year in it, add together persisted, computed column table - like:
alter table dbo.yourtable add together pkid right(cast(year(datecolumn) char(4)), 2) + '-' + right('00000' + cast(id varchar(5)), 5) persisted assuming id int identity column autogenerates sequential numbers, , want phone call new column pkid (change needed).
since persisted computed column, it's computed 1 time - when row inserted - , can indexed , used primary key.
(2) if don't have date column in table, alternative have after insert trigger on table (again: assuming have column id int identity provide auto-incremented numbers):
create trigger trginsert on dbo.yourtable after insert begin declare @yearprefix char(2) set @yearprefix = right(cast(year(getdate()) char(4)), 2) update dbo.yourtable set otherid = @yearprefix + '-' + right('00000' + cast(i.employeeid varchar(5)), 5) inserted dbo.yourtable.employeeid = i.employeeid end and of course, first need add together new pkid column table, too, trigger can store values in :-)
alter table dbo.yourtable add together pkid varchar(10) not null default ('x') -- needs not null primary key tsql primary-key sql-server-2008-express
Comments
Post a Comment