Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Crear una funcion para generar el "codigo"

Estas en el tema de Crear una funcion para generar el "codigo" en el foro de SQL Server en Foros del Web. Buenas... la idea que tengo es la siguiente: Código: create function getMaxCod ( @mctabnom varchar(20), @mccamnom varchar(20), @gclencod smallint ) returns varchar(5) as begin declare ...
  #1 (permalink)  
Antiguo 27/10/2011, 11:43
 
Fecha de Ingreso: septiembre-2009
Mensajes: 15
Antigüedad: 14 años, 6 meses
Puntos: 0
Crear una funcion para generar el "codigo"

Buenas... la idea que tengo es la siguiente:

Código:
create function getMaxCod
(
	@mctabnom varchar(20),
	@mccamnom varchar(20),
	@gclencod smallint
)
returns varchar(5)
as
begin
	declare @maxcod int,@gencod varchar(6)
	set @maxcod = (select max(mccamnom) from @mctabnom);
	if @maxcod = null
		set @maxcod = 0;
		set @maxcod = @maxcod + 1
	set @gencod = @maxcod;
	while len(@gencod) < @gclencod
		set @gencod = '0' & @gencod;
end
Estube creando y "jugando" con ese codigo, parece que la idea de VisualStudio no funciona tan bien en SQL, y si obviamente no soy bueno en SQL, ya que recien ando aprendiendo.

Lo que me refiero es a lo siguiente...
Quisiera generar una funcion que genere un código automaticamente (ex: "0001")
Tomando en cuenta 3 variables que serian [la tabla],[el campo],[y el tamaño de dicho campo].
Entonces...
Mi idea primordial, basica, es hacer un Select para determinar el valor máximo (si es que existe algun valor) de dicha tabla y luego simplemente sumarle 1 al valor del campo y asi generar el siguiente valor del CODIGO (ex: "0002")

Y como quiero que funcione en cualquier caso, es decir
cualquier nombre de tabla
cualquier nombre de campo
cualquier tamaño del campo
se me hace algo complicado porque aun no entiendo muy bien como transformar o llamar al tipo de variables correctas.

Cualquier sugerencia o alguna otra idea sera bienvenida.

Gracias por adelantado.
  #2 (permalink)  
Antiguo 30/10/2011, 20:21
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Crear una funcion para generar el "codigo"

Si tu campo es de tipo numerico, deberas tomar el MAX(Tucamp) + 1 y con REPLACE, colocar los ceros a la izquierda, haciendo un CAST para convertirlo a varchar.
__________________
MCTS Isaias Islas

Etiquetas: procedimiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:22.