Ошибка при создании резервной копии SQL Серверной базы данных, которая размещена на сервере с использованием C# - PullRequest
0 голосов
/ 11 января 2020

Я установил приложение Windows в сети LAN и развернул базу данных на сервере P C (например, P C имя равно 1).

Теперь, когда пользователь другого P C (P C name is 2) использует приложение из своей P C (2) и базы данных (на P C 1).

При нажатии кнопки я хочу создайте резервную копию базы данных и сохраните эту резервную копию по фиксированному пути P C 1.

. В настоящее время я использую следующий код:

System.IO.Directory.CreateDirectory("Fixed path");

DASQLBase thebase = new DASQLBase(Global.gMasterConnectionString);

List<SqlParameter> paras = new List<SqlParameter>();

paras.Add(new SqlParameter("@BackupFolderPath ", "Fixed Path"));

thebase.ExecuteSPDataTable("proc_BackupData", paras);

, и это SQL Серверная хранимая процедура :

DECLARE 
    @databasename AS NVARCHAR(128)
    , @timecomponent AS NVARCHAR(50)
    , @sqlcommand AS NVARCHAR(1000);

SET @databasename = (SELECT MIN(name) FROM sys.databases 
                     WHERE name IN ('CP001','CP002','CP003','CP004','CP005','CP006','CP007','CP008','CP009','CP010')); 
    --AND name NOT IN ('master', 'model', 'msdb', 'tempdb'));

WHILE @databasename IS NOT NULL
BEGIN
    SET @timecomponent = REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR,
        GETDATE(), 120), ' ', '_'), ':', ''), '-', '');

    /*  SET @sqlcommand = 'BACKUP DATABASE ' + @databasename + ' TO DISK =
        ''C:\Backups\' + @databasename + '_' + @timecomponent + '.bak''';*/

    SET @sqlcommand = 'BACKUP DATABASE ' + @databasename + ' TO DISK =
        ''' + @BackupFolderPath  + @databasename + '_' + @timecomponent + '.bak'''

    EXEC(@sqlcommand);  

    SET @databasename = (SELECT MIN(name) FROM sys.databases 
                         WHERE name IN ('CP001','CP002','CP003','CP004','CP005','CP006','CP007','CP008','CP009','CP010')  
                           AND name > @databasename);
END

Проблема в том, что резервное копирование базы данных работает, если код и база данных работают на одном p c (1), но не на p c (2)

1 Ответ

0 голосов
/ 11 января 2020

Экземпляр SQL Сервер работает на компьютере, на котором был установлен экземпляр. Все SQL Запросы и процедуры имеют только локальную область ресурсов того, что находится на исполняющей машине. Не ресурсы вашего P C. Это проблема, которую вы испытываете при исполнении вашего про c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...