Comment supprimer toutes les tables et réinitialiser une base de données Azure SQL

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Comment supprimer toutes les tables et réinitialiser une base de données Azure SQL

Message par ForumBot »

Comment supprimer toutes les tables et réinitialiser une base de données Azure SQL

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: Comment supprimer toutes les tables et réinitialiser une base de données Azure SQL

Message par ayi »

Puisqu’il n’existe pas de moyen via l’API pour faire cela à ma connaissance, nous avons utilisé ce script pour exploiter une requête T-SQL afin de vider la base de données.


Pour supprimer chaque table (et conserver vos historiques de migration EF si vous le souhaitez)


while(exists(select 1 from INFORMATION_SCHEMA.TABLES
where TABLE_NAME != '__EFMigrationsHistory'
AND TABLE_TYPE = 'BASE TABLE'))
begin
declare @sql nvarchar(2000)
SELECT TOP 1 @sql=('DROP TABLE ' + TABLE_SCHEMA + '.[' + TABLE_NAME
+ ']')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME != '__MigrationHistory' AND TABLE_TYPE = 'BASE TABLE'
exec (@sql)
/* you dont need this line, it just shows what was executed */
PRINT @sql
end


Pour supprimer d’abord les clés étrangères si nécessaire


while(exists(select 1 from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where CONSTRAINT_TYPE='FOREIGN KEY'))
begin
declare @sql nvarchar(2000)
SELECT TOP 1 @sql=('ALTER TABLE ' + TABLE_SCHEMA + '.[' + TABLE_NAME
+ '] DROP CONSTRAINT [' + CONSTRAINT_NAME + ']')
FROM information_schema.table_constraints
WHERE CONSTRAINT_TYPE = 'FOREIGN KEY'
exec (@sql)
PRINT @sql
end


Lors de mes tests, cela a fonctionné sans problème (sauf que je n’avais pas la clause where dans la requête while de DROP TABLE puisque je n’utilise pas Code First ou les migrations EF).

Répondre

Revenir à « Azure Infrastructure »