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

Preguntas similare

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

Respuesta Responder a este mensaje
#2 Maxi
25/10/2005 - 13:51 | Informe spam
Hola, debes usar convert


Salu2
Maxi [MVP SQL SERVER]


"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

Respuesta Responder a este mensaje
#3 Gustavo Larriera [MVP]
25/10/2005 - 15:19 | Informe spam
Respondiendo estrictamente a tu pregunta: Puedes intentar poner a SS 2000 en
modo de compatibilidad SS 7.0 usando el sproc sp_dbcmptlevel

De todas formas es una solución para salir del paso, en mi humilde opinión
deberías pensar en corregir el código.

Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Manel Gonzalez" wrote in message
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

Respuesta Responder a este mensaje
#4 Manel Gonzalez
25/10/2005 - 17:06 | Informe spam
Eso es lo que estoy haciendo para salir del paso.
La idea de ponerlo en compatibilidad con sql7 no me hace mucha gracia, creo
que es ir hacia atrás y seguramente con nuevas versiones de SQL me dará
mayores problemas.

Pensaba que se podria arreglar mediante alguna opcion del servidor que
desconocía...

Gracias a los dos , Gustavo y Maxy, siempre a dispuestos a echar una mano..


"Gustavo Larriera [MVP]" escribió en el mensaje
news:
Respondiendo estrictamente a tu pregunta: Puedes intentar poner a SS 2000
en modo de compatibilidad SS 7.0 usando el sproc sp_dbcmptlevel

De todas formas es una solución para salir del paso, en mi humilde opinión
deberías pensar en corregir el código.

Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Manel Gonzalez" wrote in message
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





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