2013-07-27 2 views
1

Je veux base de données de sauvegarde dans SQL Server 2012 en utilisant ce code:Programmatically modifier la configuration de SQL Server

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

Après l'exécution de ce code dans SQL Server Management Studio, je reçois cette erreur:

Msg 233, Level 20, State 0, Line 0
A transport-level error has occurred when sending the request to the server.
(provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)

pour résoudre ce problème, je dois changer le type journal (dans la configuration SQL Server) comme ci-dessous:

enter image description here

D'un autre côté, je dois changer "log on as" de "Built-in account" (1) à "This account" (2).

Lorsque je change «connecter» sous «Ce compte» et que j'entre le nom d'utilisateur et le mot de passe, le code SQL Server s'exécute correctement.

Notez que j'ai la permission d'écrire sur c: ou tout pilote

S'il vous plaît me aider à le faire en utilisant le code C# ou SQL Server.

+0

Le contexte de sécurité est établi avant l'exécution du code; comment vous connectez-vous au serveur pour exécuter votre code? Ecrivez-vous une application ou utilisez-vous SSMS? –

+0

Avez-vous essayé ces solutions ["Dépannage: aucun processus ne se trouve à l'autre extrémité du tube"] (http://msdn.microsoft.com/fr-fr/library/ms175496 (v = sql.105) .aspx) ? –

Répondre

2

Vous ne disposez pas d'autorisations d'écriture sur le lecteur C: pour votre utilisateur personnalisé. EDIT:

 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 doit être capable de lire et écrire sur le périphérique; le compte sous lequel le service SQL Server s'exécute doit avoir des autorisations d'écriture.

+0

Merci de tout le monde ... Spécialement Adrian Trifan –

Questions connexes