Backend/e-suite.API/e-suite.Database.Migrator/Scripts/ResetDatabaseScript.sql
2026-01-20 21:50:10 +00:00

53 lines
1.4 KiB
Transact-SQL

DECLARE @sql NVARCHAR(max)=''
--dropping views
SET @sql = '';
SELECT @sql += ' Drop view ' + QUOTENAME(s.NAME) + '.' + QUOTENAME(v.NAME) + '; '
FROM sys.views v
JOIN sys.schemas s
ON v.[schema_id] = s.[schema_id]
WHERE v.is_ms_shipped = 0
EXEC sp_executesql @sql
--dropping foreign keys
SET @sql = '';
SELECT @sql += 'Alter table ' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name) + ' drop constraint ' + QUOTENAME(fk.name) +'; '
FROM sys.foreign_keys AS fk
JOIN sys.tables AS t
ON t.object_id = fk.parent_object_id
JOIN sys.schemas AS s
ON s.schema_id = t.schema_id
Exec sp_executesql @sql
--dropping prinary and unique keys
SET @sql = '';
SELECT @sql += 'Alter table ' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name) + ' drop constraint ' + QUOTENAME(kc.name) +'; '
FROM sys.key_constraints AS kc
JOIN sys.tables AS t
ON t.object_id = kc.parent_object_id
JOIN sys.schemas AS s
ON s.schema_id = t.schema_id
EXEC sp_executesql @sql
--dropping tables
SET @sql = '';
SELECT @sql += ' Drop table ' + QUOTENAME(s.NAME) + '.' + QUOTENAME(t.NAME) + '; '
FROM sys.tables AS t
JOIN sys.schemas AS s
ON t.[schema_id] = s.[schema_id]
WHERE t.type = 'U'
EXEC sp_executesql @sql
--removing application user
SET @sql = '';
SELECT @sql += 'drop user ' + QUOTENAME(p.name)
FROM sys.database_principals AS p
WHERE p.authentication_type = 2
EXEC sp_executesql @sql