Here's one way:CREATE TABLE dbo.FancyIDTable ( aNumber int NOT NULL IDENTITY (1, 1), ID varchar(10) NULL, moocow varchar(50) NULL ) ON [PRIMARY]GOCREATE TRIGGER MakeCoolID ON FancyIDTableFOR INSERTASupdate FancyIDTableset ID = 'P-' + cast(aNumber as varchar(8))where ID is NULLGO
Or if you don't want the aNumber field you could make your trigger do something likeupdate FancyIDTableset ID = (select 'P-' + cast((right(max(ID), (len(max(ID)) - 2)) + 1) as varchar(8)) from FancyIDTable)where ID is NULL
Of course you'd have to add some code to lock your row or something if you did this.Or you could just add the 'P-' when you do your joins, like:select a.*from a left join b on a.someField = 'P-' + cast(b.someField as varchar(8))
Good luck,- Andrew.