Tengo una fila en una tabla. Esta fila tiene una columna de ID a la que se hace referencia en algunas otras tablas con millones de filas. La instrucción SQL para eliminar la fila siempre expira. Desde mi diseño, sé que nunca se hace referencia a la fila que deseo eliminar en ningún otro lado. Por lo tanto, me gustaría que SQL ignore tener que comprobar todas las demás tablas para una referencia de clave externa a esta fila y eliminar la fila inmediatamente. ¿Hay una manera rápida de hacer esto en SQL 2008? Tal vez algo en la línea de:Eliminar una fila de SQL ignorando todas las claves y restricciones foráneas
DELETE FROM myTable where myTable.ID = 6850 IGNORE CONSTRAINTS
O algo por el estilo.
¿Ha considerado agregar índices a las columnas de referencia de clave en las tablas relacionadas? Si no está presente, esto permitiría a SQL determinar rápidamente si otras filas hacen referencia a la fila que está intentando eliminar, y puede brindarle un aumento sustancial en el rendimiento también ... –
Puedo sugerir otro enfoque. En mi sistema, la mayoría de las tablas (de cientos) apuntan a un dbo.Company.Id. Incluso al eliminar una empresa vacía, sin referencias, solo hace que el DB verifique la integridad de FK en miles de millones de filas. Solución: solo use eliminaciones lógicas. – jean