Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/10/2011, 19:53
Novatt_146
 
Fecha de Ingreso: agosto-2011
Mensajes: 6
Antigüedad: 12 años, 8 meses
Puntos: 0
Generador de claves primarias

Bueno lo que tenia pensado es hacer una función que me genere Claves Primarias para una determinada tabla (@NombreTabla).
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;