| |||
Ayuda con BD y Borrado Saludos pues aqui nuevamente consultando, y esperando alguien me pueda orientar, bueno tengo una base en sql server 2000, con aproximadamente unas 300 tablas, lo que necesito es decir o hacer que me elimine todos los datos de esas tablas que solo me deje digamos los adtos de la ultima semana, estuve buscando antes de postear mi pregunta y en contre un manual dnde me dice que ahy un tipo de borrado historico pero o no lo entendi bien o esta enfocado para otra BD, ojala alguien me pueda orientra |
| |||
Cita:
Iniciado por Mithrandir No conozco nada como lo que buscas. En tu lugar comenzaría con algo como esto: 1) suponiendo que el campo de fecha se llama igual en todas las tablas 2) la fecha a partir de la cual eliminar es la misma en todas las tablas 3) no todas las tablas tienen el campo de fecha (por ejemplo, catalogos) Revisa el script, copia el resultado y ejecútalo: SELECT 'DELETE ' + table_name + ' WHERE campofecha < ''2005-01-01''' FROM information_schema.columns WHERE column_name = 'campofecha' Gracias por la aportacion pero por ejemplo si no en todas las tablas manejan registros de fecha, como le puedo hacer para eliminar todo el contenido de las tablas son como 300 |
| ||||
El script que te di funciona solo para tablas con el campo de fecha. Si alguna no maneja fecha la tabla queda intacta. Si quieres borrar registros de tablas sin fecha necesitas definir como le harás si no tienes un punto de referencia. Si las quieres dejar completas ya tienes la solución, si las quieres truncar completamente agrega esto a la lista: SELECT 'TRUNCATE TABLE ' + table_name FROM information_schema.tables WHERE table_name NOT IN (SELECT DISTINCT table_name FROM information_schema.columns WHERE column_name = 'campofecha')
__________________ Friedrich Nietzsche |
| |||
Cita: muchas gracias siempre puedo contar con ustedes
Iniciado por Mithrandir El script que te di funciona solo para tablas con el campo de fecha. Si alguna no maneja fecha la tabla queda intacta. Si quieres borrar registros de tablas sin fecha necesitas definir como le harás si no tienes un punto de referencia. Si las quieres dejar completas ya tienes la solución, si las quieres truncar completamente agrega esto a la lista: SELECT 'TRUNCATE TABLE ' + table_name FROM information_schema.tables WHERE table_name NOT IN (SELECT DISTINCT table_name FROM information_schema.columns WHERE column_name = 'campofecha') |