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

Malas practicas - Varchar - char sql server

Estas en el tema de Malas practicas - Varchar - char sql server en el foro de SQL Server en Foros del Web. Hay un detalle que queria que alguien me confirmara. Los campos tipo char tienen longitud fija y se definen dentro de la tabla. Los campos ...
  #1 (permalink)  
Antiguo 04/02/2013, 14:21
Avatar de jairoortiz  
Fecha de Ingreso: junio-2010
Ubicación: Barranquilla
Mensajes: 27
Antigüedad: 14 años, 5 meses
Puntos: 3
Busqueda Malas practicas - Varchar - char sql server

Hay un detalle que queria que alguien me confirmara. Los campos tipo char tienen longitud fija y se definen dentro de la tabla. Los campos varchar son de longitud variable y se almacenan en un extension dinamica de la tabla. Por lo tanto el tipo char se debe utilizar para campos de tipo alfanumericos como codigos y los campos varchar se usan para descripcion o nombres. Por ejemplo

CODIGO_EMPLEADO CHAR(10)
NOMBRE_EMPLEADO VARCHAR (30)

Es una manera correcta de definir dos campos. Pero la siguiente definicion aunque no genera problemas de frente al usuario, puede pasar como una mala practica por ineficiente:

CODIGO_EMPLEADO VARCHAR(10)
NOMBRE_EMPLEADO VARCHAR(30)

de la misma manera

CODIGO_EMPLEADO CHAR(10)
NOMBRE_EMPLEADO CHAR(30)

Espero sus comentarios
  #2 (permalink)  
Antiguo 04/02/2013, 17:33
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Malas practicas - Varchar - char sql server

Bueno la decision o no de utlizar uno u otra opcion, corre a cargo del diseñador de base de datos, para SQL Server es indistinto si colocas un CHAR(50) y solo guardas 5 caracteres, eso deberia ser considerado desde el diseño
__________________
MCTS Isaias Islas

Etiquetas: malas, prácticas, server, sql
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 13:07.