特定のデータベースのバックアップを特定の時間に削除するにはどうすればよいですか?また、ファイルのパスも指定したくありません。誰かが私を導くことができますか?

誰も〜ない

特定のデータベースのバックアップを特定の時間で削除したい。また、バックアップフォルダの場所も教えたくありません。クエリはバックアップフォルダのパスを取得し、特定のデータベースの指定された時間のバックアップを削除する必要があります。

ランジャナギミレ

これを試して:

DECLARE @BACKUP TABLE (database_name VARCHAR(500),backup_start_date VARCHAR(500),physical_device_name VARCHAR(500))

DECLARE @DATABASE_NAME VARCHAR(MAX),@DATE DATETIME,@BACK VARCHAR(8000)
SET @DATABASE_NAME='database name'
SET @DATE='2016-10-28 09:55:14.000'

INSERT INTO @BACKUP 
SELECT 
backupset.database_name, 
backupset.backup_start_date, 
backupmediafamily.physical_device_name
FROM msdb.dbo.backupmediafamily 
INNER JOIN msdb.dbo.backupset 
ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id 
WHERE backupset.database_name=@DATABASE_NAME AND backupset.backup_start_date=@DATE

IF EXISTS(SELECT * FROM @BACKUP)
BEGIN
    DECLARE C CURSOR FOR
    SELECT 'DEL '+PHYSICAL_DEVICE_NAME FROM @BACKUP
    OPEN C
    FETCH NEXT FROM C INTO @BACK
    WHILE @@FETCH_STATUS=0
    BEGIN
    EXEC XP_CMDSHELL @BACK
    FETCH NEXT FROM C INTO @BACK
    END
    CLOSE C
    DEALLOCATE C

END

ELSE
PRINT 'THE BACKUP FOR '+@DATABASE_NAME+' AT '+cast(@DATE as varchar(200))+' DOES NOT EXIST' 

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ