Resultados imprebisibles en UPDATE con SQL 2005

13/02/2007 - 16:25 por Joan Ibáñez | Informe spam
SQL Server 2005.

¡Hola! Si realizo una sentencia update desde el apartado de "Nueva Consulta"
en el Management Studio, actualiza los registros correspondientes de la
tabla de forma correcta, pero, si lanzo la misma sentencia desde el apartado
SQL, en la vista de registros de la tabla en "Abrir Tabla" (no se si me
explico), entonces me actualiza ¡¡todos los registros de la tabla!!. Me he
fijado que automaticamente me añade al final de la sentencia un "CROSS JOIN
DBPOLIZAS".

¿Debo preocuparme? Tenemos un ERP que estamos migrando de VS2003 con SQL2000
a VS2005 con SQL2005, y estamos algo preocupados pq no sabemos si las
sentencias update y delete que usamos en el programa seguiran funcionando de
forma correcta.

La sentencia update es la siguiente:

UPDATE DBPOLIZAS
SET Comision1 = 17, Comision2 = 17

FROM DBPOLIZAS AS T0 INNER JOIN DBPOLIZAS_ULTIMOSUPLEMENTO_SINTMP_ACTIVAS AS
T1

ON T0.Compañia = T1.Compañia AND T0.Poliza = T1.Poliza AND T0.Suplemento =
T1.UltimoSuplemento

AND T0.Agente = '00815' AND T0.Producto LIKE '6%'

INNER JOIN DBRISRECREO AS T2

ON T0.Compañia = T2.Compañia AND T0.Poliza = T2.Poliza AND T0.Suplemento =
T2.Suplemento

AND T2.TipoTarifa = '0'


Saludos,
Joan

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera (MVP)
13/02/2007 - 16:41 | Informe spam
Si vas a ejecutar el UPDATE manualmente, debes hacerlo desde New Query del
Management Studio.


Gustavo Larriera, MVP | Solid Quality Mentors [www.solidq.com]
Este mensaje se proporciona tal como es, sin garantías de ninguna clase



"Joan Ibáñez" wrote:

SQL Server 2005.

¡Hola! Si realizo una sentencia update desde el apartado de "Nueva Consulta"
en el Management Studio, actualiza los registros correspondientes de la
tabla de forma correcta, pero, si lanzo la misma sentencia desde el apartado
SQL, en la vista de registros de la tabla en "Abrir Tabla" (no se si me
explico), entonces me actualiza ¡¡todos los registros de la tabla!!. Me he
fijado que automaticamente me añade al final de la sentencia un "CROSS JOIN
DBPOLIZAS".

¿Debo preocuparme? Tenemos un ERP que estamos migrando de VS2003 con SQL2000
a VS2005 con SQL2005, y estamos algo preocupados pq no sabemos si las
sentencias update y delete que usamos en el programa seguiran funcionando de
forma correcta.

La sentencia update es la siguiente:

UPDATE DBPOLIZAS
SET Comision1 = 17, Comision2 = 17

FROM DBPOLIZAS AS T0 INNER JOIN DBPOLIZAS_ULTIMOSUPLEMENTO_SINTMP_ACTIVAS AS
T1

ON T0.Compañia = T1.Compañia AND T0.Poliza = T1.Poliza AND T0.Suplemento =
T1.UltimoSuplemento

AND T0.Agente = '00815' AND T0.Producto LIKE '6%'

INNER JOIN DBRISRECREO AS T2

ON T0.Compañia = T2.Compañia AND T0.Poliza = T2.Poliza AND T0.Suplemento =
T2.Suplemento

AND T2.TipoTarifa = '0'


Saludos,
Joan




Respuesta Responder a este mensaje
#2 Joan Ibáñez
14/02/2007 - 09:24 | Informe spam
¡Hola! Ok, pero todos los updates y deletes que tenemos hechos desde el
programa, funcionarán correctamente?

Saludos,
Joan

"Gustavo Larriera (MVP)" escribió en el mensaje
news:
Si vas a ejecutar el UPDATE manualmente, debes hacerlo desde New Query del
Management Studio.


Gustavo Larriera, MVP | Solid Quality Mentors [www.solidq.com]
Este mensaje se proporciona tal como es, sin garantías de ninguna clase



"Joan Ibáñez" wrote:

SQL Server 2005.

¡Hola! Si realizo una sentencia update desde el apartado de "Nueva
Consulta"
en el Management Studio, actualiza los registros correspondientes de la
tabla de forma correcta, pero, si lanzo la misma sentencia desde el
apartado
SQL, en la vista de registros de la tabla en "Abrir Tabla" (no se si me
explico), entonces me actualiza ¡¡todos los registros de la tabla!!. Me
he
fijado que automaticamente me añade al final de la sentencia un "CROSS
JOIN
DBPOLIZAS".

¿Debo preocuparme? Tenemos un ERP que estamos migrando de VS2003 con
SQL2000
a VS2005 con SQL2005, y estamos algo preocupados pq no sabemos si las
sentencias update y delete que usamos en el programa seguiran funcionando
de
forma correcta.

La sentencia update es la siguiente:

UPDATE DBPOLIZAS
SET Comision1 = 17, Comision2 = 17

FROM DBPOLIZAS AS T0 INNER JOIN DBPOLIZAS_ULTIMOSUPLEMENTO_SINTMP_ACTIVAS
AS
T1

ON T0.Compañia = T1.Compañia AND T0.Poliza = T1.Poliza AND T0.Suplemento
>> T1.UltimoSuplemento

AND T0.Agente = '00815' AND T0.Producto LIKE '6%'

INNER JOIN DBRISRECREO AS T2

ON T0.Compañia = T2.Compañia AND T0.Poliza = T2.Poliza AND T0.Suplemento
>> T2.Suplemento

AND T2.TipoTarifa = '0'


Saludos,
Joan




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