2011-05-10 18 views
5

Tengo una consulta SQL que actualiza los ID de una tabla en función de una unión a los registros en otra tabla. El problema es que, por alguna razón, no entiendo que la consulta de Actualización realmente muestra los resultados en la consulta a la grilla en SSMS. Esto está causando una 'Excepción de falta de memoria' en mi máquina porque está tratando de mostrar 1 millón de resultados en la cuadrícula. Es interesante porque la consulta no debe mostrar nada excepto el número de registros actualizados. ¿Alguna idea de lo que estoy haciendo mal?MSSQL Update Query Mostrando resultados en la cuadrícula

Aquí es un ejemplo de mi consulta:

UPDATE MyDatabase.dbo.Notes 
    SET ParentID = A.ID 
    FROM MyDatabase.dbo.Notes N 
    JOIN MyDatabase.dbo.Actions A ON N.OldID = A.OldID 
WHERE A.OldID IS NOT NULL 
    AND N.OldID IS NOT NULL 
    AND N.ParentID IS NULL 
+8

¿Hay algún activador de actualización en la tabla actualizada? Pero no estoy seguro de que pueda "generar" un conjunto de resultados SELECT en un desencadenador. Solo adivinando. – MaxiWheat

+0

Eso fue todo. Aparentemente hay un disparador de actualización con una declaración de selección en él. Inhabilité el activador y la consulta se ejecutó instantáneamente. No puedo creer que no haya pensado en eso. ¡Gracias por la ayuda! – Matt

+0

También podría agregar una respuesta y marcarla como la respuesta @Matt, ¡de esa manera la comunidad sabrá que esta pregunta se ha resuelto! Aclamaciones –

Respuesta

1

El código que aparece en su pregunta no causará ninguna salida a la red en SSMS por sí mismo

  • vuelve a comprobar que lo que pegado es en realidad su consulta exacta
    • A veces el código adicional se puede ocultar debajo de la tapa
  • Compruebe si hay factores desencadenantes en las tablas involucrado
1

Al parecer no es un disparador de actualización con una instrucción select en ella. Inhabilité el activador y la consulta se ejecutó instantáneamente.

Cuestiones relacionadas