-1
我想創建一個應該還原數據庫備份的過程。我想通過varbinary(max)類型參數傳遞備份文件。從varbinary(max)變量備份文件還原SQL Server備份
有可能嗎?我找不到任何這方面的參考。
我需要因爲備份文件將不會在服務器上執行此任務,這將是一個客戶機上。
我需要在代碼(C#)上調用此過程。
編輯
今天,我有下面的代碼,創建並返回備份文件:
DECLARE @MdfFilePath AS VARCHAR(MAX),
@BackupFileName AS VARCHAR(MAX),
@DbName AS VARCHAR(MAX) = DB_NAME()
SELECT
@MdfFilePath = physical_name
FROM
sys.master_files
WHERE
database_id = DB_ID(@DbName)
SELECT @BackupFileName = LEFT(@MdfFilePath,LEN(@MdfFilePath) - charindex('\',reverse(@MdfFilePath),1) + 1) + @DbName +'_' +
REPLACE(CONVERT(VARCHAR(MAX), GETDATE(), 121), ':', '-') + '.bak'
BACKUP DATABASE @DbName
TO DISK = @BackupFileName
WITH INIT
DECLARE @SQL AS NVARCHAR(MAX)
SET @SQL = 'SELECT * FROM OPENROWSET(BULK ''' + @BackupFileName + ''', SINGLE_BLOB) rs'
EXEC sp_executesql @SQL
我需要一個功能,讓我通過備份文件到服務器,接下來,恢復它。
沒有,據我所知,該文件有**實際存在**在磁盤上,或者在服務器自身的內部磁盤或網絡位置(通過UNC路徑指定),服務器(和服務器進程'帳戶)有權訪問。你不能只在備份中傳遞'varbinary(max)'變量。另外:該變量將被限制爲** 2 GB **,並且您的數據庫備份可以輕鬆*超出該限制 –
如果您使用ac#應用程序調用此過程,則可以將.bak文件作爲參數傳遞,如圖像或其他文檔。 – McNets
@mcNets好的。如何從varbinary(max)流變量恢復備份文件? –