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

sql server: por que me da este error?

Estas en el tema de sql server: por que me da este error? en el foro de Bases de Datos General en Foros del Web. hola tengo la siguiente sentencia sql: Select (TRIM(CursosBase.Cur_Codigo) & TRIM(Convocatorias.Con_Codigo_Esp)) AS Codigo From .... en una pagina web introduzco los registro sen un combo <option ...
  #1 (permalink)  
Antiguo 22/07/2004, 14:26
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.135
Antigüedad: 21 años, 5 meses
Puntos: 2
sql server: por que me da este error?

hola

tengo la siguiente sentencia sql:

Select (TRIM(CursosBase.Cur_Codigo) & TRIM(Convocatorias.Con_Codigo_Esp)) AS Codigo
From ....

en una pagina web introduzco los registro sen un combo

<option value="Consulta.Codigo">...

pues cuando lo ejecuto para guardar el valor elegido en el combo en una tabla de base de datos me da el siguiente error:

Los datos de cadena o binarios se truncarían.

qué significa? y como lo puedo solucionar?

gracias
  #2 (permalink)  
Antiguo 22/07/2004, 14:32
 
Fecha de Ingreso: noviembre-2002
Mensajes: 37
Antigüedad: 21 años, 5 meses
Puntos: 0
Lo mas probable es que tengas definida la columna como varchar(x) o char(x) donde x es menor al tamaño del string que quieres guardar, es decir, estas intentando ingresar un string de 10 caracteres en una columna que solo admite 5 (si x fuese 5).

La solución: edita el campo y aumenta el numero de caracteres que admite.

Saludos

v7
  #3 (permalink)  
Antiguo 22/07/2004, 15:26
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.135
Antigüedad: 21 años, 5 meses
Puntos: 2
es verdad! gracias!

como modifico mediante una consulta el valor del tamaño del campo, actualmente tiene un nvarchar de 8 caracteres, pero lo quiero poner en 20, como lo hago?

gracias
  #4 (permalink)  
Antiguo 22/07/2004, 15:54
 
Fecha de Ingreso: noviembre-2002
Mensajes: 37
Antigüedad: 21 años, 5 meses
Puntos: 0
no puedes modificarlo con una consulta, tienes que hacerlo desde el Enterprise Manager y darle click derecho a la tabla y seleccionar Diseñar Tabla. Ahi le cambias las propiedades a la tabla.

v7
  #5 (permalink)  
Antiguo 23/07/2004, 01:24
Avatar de peloteitor  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 849
Antigüedad: 20 años, 5 meses
Puntos: 1
No se puede utilizar el comando ALTER TABLE para modificar la tabla mediante una consulta??
__________________
El sexo sin amor es una experiencia vacía. Pero como experiencia vacía es una de las mejores.

Woody Allen
  #6 (permalink)  
Antiguo 23/07/2004, 01:41
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.135
Antigüedad: 21 años, 5 meses
Puntos: 2
sí que se puede:

ALTER TABLE mytabla
ALTER COLUMN mycolumna VARCHAR(20)

saludos
  #7 (permalink)  
Antiguo 07/09/2010, 14:03
 
Fecha de Ingreso: septiembre-2010
Mensajes: 2
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: sql server: por que me da este error?

es la configuracion de tu sql
esta configurado para que te de ese tipo de errores
solo ponle

SET ANSI_DEFAULTS Off

y listo

aunque ya esta vieja la pregunta, acabo de toparme con el problema y asi fue como lo solucione
  #8 (permalink)  
Antiguo 07/09/2010, 19:52
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: sql server: por que me da este error?

Me parece que nos ganamos una multa por abrir temas viejos, pero hay que decir que no deberías implementar esa solución, la respuesta correcta ya fue dada, tanto el tipo como longitud de los campos es un tema de diseño y debe contemplar todos los posibles valores para una columna.

El comando set ansi_defaults establece valores para una serie de parámetros de SQL Server que pueden modificar el comportamiento de las consultas SQL y generar resultados no esperados, en el caso particular de la longitud de un varchar, se truncaran los datos y habrá pérdida de información sin ningún tipo de advertencia.

Saludos
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 22:45.