나는 클라이언트가 목록하기 -이를 서버 데스크톱 응용 프로그램 (.NET)을 클라이언트하면 다시 폴더까지 기본에 저장 가능한 백업 파일의 목록을 가져옵니다 (C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup
)SQL 서버 2012 : 자료 백업
나는 결정
CREATE PROCEDURE [dbo].[spGetBackUpFiles] AS
SET NOCOUNT ON
BEGIN
declare @backUpPath as table
(
name nvarchar(max),
backuppath nvarchar(max)
)
insert into @backUpPath
EXECUTE [master].dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer', N'BackupDirectory'
declare @table as table
(
filename nvarchar(max),
depth int,
filefile int
)
declare @backUpFilesPath as nvarchar(max) = (select top 1 backuppath from @backUpPath)
insert into @table
EXEC xp_dirtree @backUpFilesPath, 1, 1
SELECT * FROM @table WHERE filename like N'MASK[_]%'
END
을하지만 점점 오전 오류 다음과 같습니다 :
Msg 0, Level 11, State 0, Line 0
A severe error occurred on the current command. The results, if any, should be discarded.
당신은 그럴 필요 수있는 모든 필요한 파일을 가진 테이블을 반환하는 저장 프로 시저를 만들 수 있습니다 이 스크립트는 컴퓨터에 설치되어 있습니다 ...
무엇이 문제입니까?
(SMO 라이브러리를 사용 중일 수 있습니다) 사용 가능한 백업 목록을 얻는 다른 방법이 있습니까?
, 당신은 목록을하고자하는 SQL Server에서 추적하지 않는 백업 파일은 무엇입니까? sql 서버가 알고있는 백업 파일 목록을 원한다면 (유지 관리 계획에서와 같이), msdb 데이터베이스에서'backupfile' 테이블을 쿼리하면됩니다. –
'xp_dirtree'는 문서화되지 않았기 때문에 지원되지 않습니다. . –
Darren Kopp => 예,이 테이블 (backupfile, backupmediafamily, backupset)에 대해 알고 있지만이 테이블은 폴더와 동기화되지 않습니다. 단지 역사 일뿐입니다 –