Ayhan ARDA

Mssql Serverda Bir database e ait tüm tabloları,ilişkileri, store procedurleri,view leri,functionları silmek

Tabloları Silmek

EXEC sp_MSForEachTable 'DROP TABLE ?'
GO

Tablolar arası ilişkileri silmek

DECLARE @Sql NVARCHAR(500)
DECLARE @Cursor CURSOR
SET @Cursor = CURSOR FAST_FORWARD FOR
 
SELECT DISTINCT sql = 'ALTER TABLE [' + TableCons.TABLE_NAME +
        '] DROP [' + ReferentialCons.CONSTRAINT_NAME + ']'
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS ReferentialCons
LEFT JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS TableCons
ON TableCons.CONSTRAINT_NAME = ReferentialCons.CONSTRAINT_NAME
 
OPEN @Cursor FETCH NEXT FROM @Cursor INTO @Sql
WHILE (@@FETCH_STATUS = 0)
BEGIN
    Exec SP_EXECUTESQL @Sql
    FETCH NEXT FROM @Cursor INTO @Sql
END
CLOSE @Cursor DEALLOCATE @Cursor
GO

View’ları silmek

DECLARE @query VARCHAR(MAX) = '';
SELECT @query = @query + 'DROP VIEW [' + name + '];' FROM sys.views;
EXEC(@query);

Stored Procedur’leri silmek

DECLARE @procedureName VARCHAR(500)
DECLARE cur CURSOR
 
FOR SELECT [name] FROM sys.objects WHERE TYPE = 'p'
OPEN cur
FETCH NEXT FROM cur INTO @procedureName
 
WHILE @@fetch_status = 0
BEGIN
    EXEC('DROP PROCEDURE ' + @procedureName)
    FETCH NEXT FROM cur INTO @procedureName
END
 
CLOSE cur
DEALLOCATE cur

Fonksiyonları silmek

DECLARE @functionName VARCHAR(500)
DECLARE cur CURSOR
 
FOR SELECT [name] FROM sys.objects WHERE TYPE = 'fn'
OPEN cur
FETCH NEXT FROM cur INTO @functionName
 
WHILE @@fetch_status = 0
BEGIN
    EXEC('DROP FUNCTION ' + @functionName)
    FETCH NEXT FROM cur INTO @functionName
END
 
CLOSE cur
DEALLOCATE cur

Ayhan ARDA

Exit mobile version