SqlServer清理日志的方法

SqlServer中用于删除日志和备份数据库的两个存储过程

删除日志:

CREATE PROCEDURE [dbo].[sp_DB_DelLog]
AS
BEGIN
SET nocount ON
DECLARE @DBName VARCHAR(50)
SET @DBName=db_name()
DUMP TRANSACTION @DBName WITH NO_LOG
BACKUP LOG @DBName WITH NO_LOG
DBCC SHRINKDATABASE(@DBName)
END

—————————————————————–
备份数据库:

CREATE PROCEDURE [dbo].[sp_DB_Bak]
@BakPath VARCHAR(255)
AS
BEGIN
SET nocount ON
DECLARE @DBName VARCHAR(50)
SET @DBName=db_name()
DECLARE @Now datetime
SET @Now=getdate()
SET @BakPath = REPLACE(@BakPath,'/','\')
if right(@BakPath,1)<>'\'
SET @BakPath = @BakPath+'\'
SET @BakPath = @BakPath+@DBName+'_'+datename(yyyy,@now)+datename(mm,@now)+datename(dd,@now)+datename(hh,@now)+datename(mi,@now)+datename(ss,@now)
datename(ms,@now)+'.Bak'
Declare @BakName varchar(50)
SET @BakName='FULL Backup OF '+@DBName
BACKUP DATABASE @DBName
TO DISK = @BakPath
WITH FORMAT,
NAME = @BakName
end

Leave a Reply

Your email address will not be published.


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">