¿Cómo eliminar todas las filas de todas las tablas en una base de datos de SQL Server?
sql-server-2005
Michał Powaga
fuente
fuente
Respuestas:
Tenga en cuenta que TRUNCATE no funcionará si tiene un conjunto de integridad referencial.
En ese caso, esto funcionará:
fuente
USE [MyDataBase]
:? ¿Funcionaría la idea anterior, si se adapta de alguna manera? ... Porque no quiero eliminar todos los DB guardados por el servidor SQL.En mi proyecto reciente, mi tarea consistía en limpiar una base de datos completa utilizando la instrucción sql y cada tabla tenía muchas restricciones, como la clave primaria y la clave externa. Hay más de 1000 tablas en la base de datos, por lo que no es posible escribir una consulta de eliminación en todas y cada una de las tablas.
Mediante el uso de un procedimiento almacenado llamado sp_MSForEachTable que nos permite procesar fácilmente algún código en todas y cada una de las tablas de una sola base de datos. Significa que se usa para procesar un solo comando T-SQL o diferentes comandos T-SQL en cada tabla de la base de datos.
Siga los pasos a continuación para truncar todas las tablas en una base de datos de SQL Server:
Paso 1- Desactive todas las restricciones en la base de datos utilizando la consulta sql a continuación:
EXEC sys.sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
Paso 2- Ejecute una operación Eliminar o truncar en cada tabla de la base de datos utilizando el siguiente comando sql:
Paso 3- Habilite todas las restricciones en la base de datos utilizando la siguiente instrucción sql:
fuente
sql server azure
?Tuve que eliminar todas las filas y lo hice con el siguiente script:
¡Espero que esto ayude!
fuente
Aquí hay una solución que:
INFORMATION_SCHEMA.TABLES
de una base de datos particularSELECTS
tablas basadas en algunos criterios de búsquedasysdiagrams
y__RefactorLog
Al principio lo intenté
EXECUTE sp_MSforeachtable 'TRUNCATE TABLE ?'
, pero eso eliminó mis diagramas.fuente
ALTER TABLE
bit para deshabilitar las restricciones falla.En mi caso, necesitaba configurar QUOTED_IDENTIFIER. Esto llevó a una ligera modificación de la respuesta de Mark Rendle anterior:
fuente
DELETE failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations.
fuente
Puede eliminar todas las filas de todas las tablas utilizando un enfoque como el sugerido por Rubens, o simplemente puede soltar y volver a crear todas las tablas. Siempre es una buena idea tener los scripts de creación de db completos de todos modos, por lo que puede ser el método más fácil / rápido.
fuente
Para algunos requisitos, es posible que tengamos que omitir ciertas tablas. Escribí el siguiente script para agregar algunas condiciones adicionales para filtrar la lista de tablas. El siguiente script también mostrará el conteo previo a la eliminación y el conteo posterior a la eliminación.
fuente
Esta respuesta se basa en la respuesta de Zach Smith al restablecer también la columna de identidad :
Aquí está la consulta:
fuente
fuente
si desea eliminar toda la tabla, debe seguir las siguientes instrucciones SQL
fuente