用日志文件备份sqlserver

USE [TestDB] 
GO 
SET ANSI_NULLS ON
GO 
SET QUOTED_IDENTIFIER ON
GO 
CREATE PROCEDURE [BackupDatabase](@FolderPath varchar(500)) 
as
DECLARE @FullPath varchar(1000) 
set @FullPath = @FolderPath+ 'TestDB_'+convert(VARCHAR(4),year(getdate()))+right( '0'+convert(VARCHAR(2),MONTH(getdate())),2)+right('0'+convert(VARCHAR(2),DAY(getdate())),2)+ '.bak'
backup database [TestDB] to disk=@FullPath WITH INIT 
return

 

用这个存储过程 写作业执行 如果在回复的时候报错 如 :

因为数据库正在使用,所以无法获得对数据库的独占访问权

请使用

USE master

DECLARE @dbname VARCHAR(20)

SET @dbname = 'Test'

DECLARE @sql NVARCHAR(500)

DECLARE @spid INT
 --SPID 值是当用户进行连接时指派给该连接的一个唯一的整数

SET @sql = 'declare getspid cursor for

select spid from sysprocesses where dbid=db_id(''' + @dbname + ''')'

EXEC ( @sql )

OPEN getspid

FETCH NEXT FROM getspid INTO @spid

WHILE @@fetch_status <> -1-- 如果 FETCH 语句没有执行失败或此行不在结果集中。
    BEGIN

        EXEC ( 'kill ' + @spid ) -- 终止正常连接

        FETCH NEXT FROM getspid INTO @spid

    END

CLOSE getspid

DEALLOCATE getspid

 

转载于:https://www.cnblogs.com/ganler1988/p/3223435.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值