有人可以幫助寫一個SQL腳本,可以刪除所有的表和數據庫中的所有數據?SQL腳本完全清理數據庫?
我知道我可以做DROP tableName
但我想要一個可以跨越任何數據庫並完全清理它的腳本。
注意:我不想刪除數據庫本身,只需清空所有表並刪除所有表。
注意:如果它很重要,我正在使用SQL Server Compact Edition。
有人可以幫助寫一個SQL腳本,可以刪除所有的表和數據庫中的所有數據?SQL腳本完全清理數據庫?
我知道我可以做DROP tableName
但我想要一個可以跨越任何數據庫並完全清理它的腳本。
注意:我不想刪除數據庫本身,只需清空所有表並刪除所有表。
注意:如果它很重要,我正在使用SQL Server Compact Edition。
DROP數據庫名稱。用這個。這是有益的
這會完全刪除.sdf文件嗎? –
刪除所有表
- 刪除所有密鑰
DECLARE @Sql NVARCHAR(500) DECLARE @Cursor CURSOR
SET @Cursor = CURSOR FAST_FORWARD FOR
SELECT DISTINCT sql = 'ALTER TABLE [' + tc2.TABLE_NAME + '] DROP [' + rc1.CONSTRAINT_NAME + ']'
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc1
LEFT JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc2 ON tc2.CONSTRAINT_NAME =rc1.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
EXEC sp_MSForEachTable 'DROP TABLE ?'
GO
刪除所有存儲過程
declare @procName varchar(500)
declare cur cursor
for select [name] from sys.objects where type = 'p'
open cur
fetch next from cur into @procName
while @@fetch_status = 0
begin
if @procName <> 'DeleteAllProcedures'
exec('drop procedure ' + @procName)
fetch next from cur into @procName
end
close cur
deallocate cur
刪除所有瀏覽
個declare @procName varchar(500)
declare cur cursor
for select [name] from sys.objects where type = 'v'
open cur
fetch next from cur into @procName
while @@fetch_status = 0
begin
exec('drop view ' + @procName)
fetch next from cur into @procName
end
close cur
deallocate cur
全部刪除功能
declare @procName varchar(500)
declare cur cursor
for select [name] from sys.objects where type = 'fn'
open cur
fetch next from cur into @procName
while @@fetch_status = 0
begin
exec('drop function ' + @procName)
fetch next from cur into @procName
end
close cur
deallocate cur
嘗試
TRUNCATE DATABASE
我希望工程
我不認爲你可以在數據庫上使用TRUNCATE命令,只能在表上使用。 –
好像刪除了數據庫,只是創造一個新的具有相同名稱會效率更高。 –
好吧 - 我會這樣做,如果我沒有找到任何其他簡單的解決方案 –