la clave primaria tiene que generar con parte del nombre de la tabla, por ejemplo para una tabla
- TCliente: ------> clave primaria seria: CLI02101
- TProducto ------>clave primaria seria: PRO0581
la clave primaria consta de dos partes la parte de la abreviatura del nombre de la tabla y la parte numérica incrementable.
hasta el momento tengo una parte de la funcioon la cual me gustaria hacerla más general, puesto que solo trabaja con un parámetros preestablecidos, alguien tiene una idea de como puedo generalizar la funcion, y esta me funcion con solo dar el nombre de cualquier tabla????
Código:
CREATE FUNCTION f_crearIdAutoincr (@NombreTabla varchar(50)) RETURNS varchar(8) AS BEGIN DECLARE @Max int DECLARE @Ident varchar(8) set @Ident = upper(SUBSTRing(@NombreTabla,2,3)) set @Max = (select isnull ((select (substring (CodCliente,3,3)) from tCliente),0)) set @Max=@Max+1 --Retorno el valor RETURN @Ident+(select RIGHT('0000' + cast(@Max as varchar(4)), 4)) END;