日期:2014-05-17 浏览次数:20715 次
USE [master] GO ALTER DATABASE asgfw#db SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE asgfw#db SET RECOVERY SIMPLE --简单模式 GO USE asgfw#db GO DBCC SHRINKFILE (N'asgfw#db_Log' , 11, TRUNCATEONLY) GO USE [master] GO ALTER DATABASE asgfw#db SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE asgfw#db SET RECOVERY FULL --还原为完全模式 GO
-- 创建一个存储过程就行了 create proc del as USE [master] GO ALTER DATABASE asgfw#db SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE asgfw#db SET RECOVERY SIMPLE --简单模式 GO USE asgfw#db GO DBCC SHRINKFILE (N'asgfw#db_Log' , 11, TRUNCATEONLY) GO USE [master] GO ALTER DATABASE asgfw#db SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE asgfw#db SET RECOVERY FULL --还原为完全模式 GO Go --上面就建好的存储过程 exec del --执行存储过程
------解决方案--------------------
-- 先创建一个存储过程 create proc del as ALTER DATABASE asgfw#db SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE asgfw#db SET RECOVERY SIMPLE --简单模式 GO ALTER DATABASE asgfw#db SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE asgfw#db SET RECOVERY FULL --还原为完全模式 GO Go --上面是存储过程 --如果asgfw#db也是一个数据库的话,然后再做一个触发器 --触发器我不太会,就是当执行上面的存储过程后 就 触发这触发器 去执行 /*USE asgfw#db GO DBCC SHRINKFILE (N'asgfw#db_Log' , 11, TRUNCATEONLY) GO */ exec del --执行存储过程
------解决方案--------------------
当然不用触发器也行
USE [master]
GO
create proc delone
as
ALTER DATABASE asgfw#db SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE asgfw#db SET RECOVERY SIMPLE --简单模式
GO
ALTER DATABASE asgfw#db SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE asgfw#db SET RECOVERY FULL --还原为完全模式
GO
--这上面为一个存储过程
USE asgfw#db
GO
create proc deltwo
AS
DBCC SHRINKFILE (N'asgfw#db_Log' , 11, TRUNCATEONLY)
GO
--这也是一个存储过程,然后把这2个存储整合到一个里面
USE 你要作用到的数据库
GO
create proc delthree
as
exec delone
exec deltwo
GO
--然后执行存储过程
exec delthree
-- 这就实现了 你的要求