1

次のコードを使用して、SQL Server 2012 のデータベースをバックアップします。

BACKUP DATABASE aveed_co
TO DISK = 'C:\bakup.bak'
WITH FORMAT,
MEDIANAME = 'aveed_co',
NAME = 'aveed_co'

SQL Server Management Studio でこのコードを実行すると、次のエラーが発生します。

メッセージ 233、レベル 20、状態 0、行 0
サーバーに要求を送信するときにトランスポート レベルのエラーが発生しました。
(プロバイダー: 共有メモリ プロバイダー、error: 0- パイプの反対側にプロセスはありません。)

この問題を解決するには、(SQL Server 構成で) ログオンの種類を次のように変更する必要があります。

ここに画像の説明を入力

一方、「ログオン」を「組み込みアカウント」(1) から「このアカウント」(2) に変更する必要があります。

「ログオン」を「このアカウント」に変更し、ユーザー名とパスワードを入力すると、SQL Server コードが正しく実行されます。

c: または任意のドライバーに書き込む権限があることに注意してください

C# または SQL Server コードを使用してこれを行うのを手伝ってください。

4

1 に答える 1

2

カスタム ユーザーのドライブ C: に対する書き込み権限がありません。編集:

        var query = @"BACKUP DATABASE [aveed_co] 
                        TO  DISK = 'C:\bakup.bak' WITH  INIT 
                        ,NOUNLOAD
                        ,NAME = N'aveed_co'
                        ,NOSKIP
                        ,STATS = 10
                        ,NOFORMAT 
                        ,COMPRESSION";
        using (var connection = new SqlConnection(@"Server=myServerAddress;Database=aveed_co;User Id=myUsername;Password=myPassword;"))
        {
            connection.Open();
            using (var command = new SqlCommand(query, connection))
            {
                command.CommandTimeout = 0;
                command.ExecuteNonQuery();
            }
        }

SQL Server は、デバイスに対して読み書きできる必要があります。SQL Server サービスを実行するアカウントには、書き込み権限が必要です。

于 2013-07-27T19:10:08.250 に答える