Espacios en blanco

10/05/2005 - 20:48 por Paula Rojas | Informe spam
Buen dia para todos!

Tengo un problema y me gustaria me pudieran orientar.

Tengo una tabla cuya llave principal es un nvarchar de 15 y tengo otra tabla
relacionada con dicho campo, resulta que mediante un proceso de carga de
archivos de un cliente se insertan espacios al final de la clave que SQL no
toma en cuenta y no marca error de relacion porque considera que es la misma
clave aunque realmente no lo es, pero que en el lenguaje de programacion
donde uso los datos si repercute, asi que quisiera saber si de alguna manera
se puede restrigir que SQL no te permita insertar esos datos, sobre todo si
el campo esta relacionado y no esta escrito tal cual lo esta en la tabla
Padre.

Espero haberme dado a entender.

Gracias por su atención y espero su respuesta.

Preguntas similare

Leer las respuestas

#1 Miguel Egea
10/05/2005 - 20:29 | Informe spam
cambiando el tipo de dato por char creo que solucionas tu problema (igual te
genera otros).

Saludos
Miguel Egea
"Paula Rojas" escribió en el mensaje
news:e%
Buen dia para todos!

Tengo un problema y me gustaria me pudieran orientar.

Tengo una tabla cuya llave principal es un nvarchar de 15 y tengo otra
tabla
relacionada con dicho campo, resulta que mediante un proceso de carga de
archivos de un cliente se insertan espacios al final de la clave que SQL
no
toma en cuenta y no marca error de relacion porque considera que es la
misma
clave aunque realmente no lo es, pero que en el lenguaje de programacion
donde uso los datos si repercute, asi que quisiera saber si de alguna
manera
se puede restrigir que SQL no te permita insertar esos datos, sobre todo
si
el campo esta relacionado y no esta escrito tal cual lo esta en la tabla
Padre.

Espero haberme dado a entender.

Gracias por su atención y espero su respuesta.





Respuesta Responder a este mensaje
#2 Alejandro Mesa
11/05/2005 - 14:14 | Informe spam
Paula,

No importa si la columna es char / nchar / varchar / nvarchar, SQL Server no
toma en cuenta los espacios a la derecha cuando compara este tipo de datos.
Es mas, las columnas tipo char / nchar son rellenadas con espacios a la
derecha automaticamente. Esto lo puedes comprobar con las siguientes
sentencias select:

select datalength(cast('a' as char(15)))
go

select 1
where cast('a ' as char(15)) = cast('a' as char(15))
go

Pudieras usar la funcion DATALENGTH, la cual devuelve la cantidad de bytes
en una columna char / varchar / nchar / nvarchar / text / ntext. Algo asi
como:

on t1.c1 = t2.c1 and datalength(t1.c1) = datalength(t2.c1)

Ejemplo:

use northwind
go

create table t1 (
c1 varchar(15) not null
)
go

create table t2 (
c1 varchar(15) not null
)
go

insert into t1 values('Microsoft')
insert into t1 values('Oracle')

insert into t2 values('Microsoft')
insert into t2 values('Oracle ')
go

select
*
from
t1
inner join
t2
on t1.c1 = t2.c1 and datalength(t1.c1) = datalength(t2.c1)
go

drop table t1, t2
go


AMB

"Paula Rojas" wrote:

Buen dia para todos!

Tengo un problema y me gustaria me pudieran orientar.

Tengo una tabla cuya llave principal es un nvarchar de 15 y tengo otra tabla
relacionada con dicho campo, resulta que mediante un proceso de carga de
archivos de un cliente se insertan espacios al final de la clave que SQL no
toma en cuenta y no marca error de relacion porque considera que es la misma
clave aunque realmente no lo es, pero que en el lenguaje de programacion
donde uso los datos si repercute, asi que quisiera saber si de alguna manera
se puede restrigir que SQL no te permita insertar esos datos, sobre todo si
el campo esta relacionado y no esta escrito tal cual lo esta en la tabla
Padre.

Espero haberme dado a entender.

Gracias por su atención y espero su respuesta.






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida