Código:
CREATE TRIGGER miTrigger
ON dbo.miTalba
FOR INSERT, UPDATE
AS
declare @pk as varchar(10/*el num que vos quieras*/)
set @pk=(select max pf from miTabla)
set @pk= cast (@pk as int)+1
declare @pkLetra as varchar(10/*el num que vos quieras*/)
set @pkfecha='Letra'
update miTabla set codigo_sol_req=@pk + @pkLetra where codigo_sol_req=null or where codigo_sol_req=''
begin
RAISERROR (50015, 16, 10)
ROLLBACK TRANSACTION
end
Lo primiero que debes hacer es convertir tu pk as string y permitir null
cuadno hagas un insert ese registro sera en unico con null o vacio
Este trigger actualiza tu clave de ese registro null o vacio con los datos del pk mayor incrementandolo en 1 y concatenando la letra que elegiste.
luego si queres para mayor organizacion podes insertar un registro en la talba de mensajes de error con
Cita: sp_addmessage 50015 ,
16 ,
'Error en la insercion del registro' ,
'us_english'
Espero que te sirva
Saludos