Diferente comportamiento de 2 servidores SQL

25/10/2005 - 09:36 por Manel Gonzalez | Informe spam
Hola a todos

Tengo 2 Servidores SQL Server, uno con el 7.0 y otro con el 2000

Estamos migrando de uno a otro aplicaciones y me encuentro con el siguiente
problema.

En el SQL7 podía hacer una select sobre un campo varchar que contuviese
registros en formato numérico o no sin necesidad de poner el campo entre
comillas
Por ejemplo, si tengo la tabla A con los siguientes valores en CAMPO1
varchar(7) y CAMPO2 money
CAMPO1 CAMPO2
'1000' 20
'2022' 10
'50a01' 15

Yo puedo hacer la siguente consulta : SELECT CAMPO1 FROM A WHERE CAMPO1 =
1000 (sin comillas!!) y me devuelve el primer registro

Sin embargo en el SQL2000 me da error de convertir a varchar el valor
'50a01'


Tambien me encuentro con otro problema
Si sobre la tabla anterior en el SQL7 hago la consulta: SELECT A=
ISNULL(SUM(CAMPO2), 0) WHERE CAMPO1 = '5000' (registro que no existe), me
devuelve 0, mientras que la misma select en el 2000 no retorna ningun valor,
ni NULL ni cero

Se puede configurar el 2000 para que se comporte de igual manera que el 7.
Gracias de antemano a todos
 

Leer las respuestas

#1 Manel Gonzalez
25/10/2005 - 11:06 | Informe spam
Cometí un error al escribir. Donde dice
"Sin embargo en el SQL2000 me da error de convertir a varchar el valor
'50a01'"
en verdad es
"Sin embargo en el SQL2000 me da error de convertir a INT el valor '50a01'

Gracias



"Manel Gonzalez" escribió en el mensaje
news:
Hola a todos

Tengo 2 Servidores SQL Server, uno con el 7.0 y otro con el 2000

Estamos migrando de uno a otro aplicaciones y me encuentro con el
siguiente problema.

En el SQL7 podía hacer una select sobre un campo varchar que contuviese
registros en formato numérico o no sin necesidad de poner el campo entre
comillas
Por ejemplo, si tengo la tabla A con los siguientes valores en CAMPO1
varchar(7) y CAMPO2 money
CAMPO1 CAMPO2
'1000' 20
'2022' 10
'50a01' 15

Yo puedo hacer la siguente consulta : SELECT CAMPO1 FROM A WHERE CAMPO1 =
1000 (sin comillas!!) y me devuelve el primer registro

Sin embargo en el SQL2000 me da error de convertir a varchar el valor
'50a01'


Tambien me encuentro con otro problema
Si sobre la tabla anterior en el SQL7 hago la consulta: SELECT A=
ISNULL(SUM(CAMPO2), 0) WHERE CAMPO1 = '5000' (registro que no existe), me
devuelve 0, mientras que la misma select en el 2000 no retorna ningun
valor, ni NULL ni cero

Se puede configurar el 2000 para que se comporte de igual manera que el 7.
Gracias de antemano a todos

Preguntas similares