【问题标题】:Programmatically change SQL Server configuration以编程方式更改 SQL Server 配置
【发布时间】:2013-07-27 18:31:40
【问题描述】:

我想使用以下代码在 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 代码执行此操作。

【问题讨论】:

标签: c# sql-server database sql-server-2012


【解决方案1】:

您没有自定义用户对驱动器 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 服务的帐户必须具有写入权限。

【讨论】:

  • 感谢大家...特别是 Adrian Trifan
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-21
  • 2013-12-23
  • 1970-01-01
  • 2019-07-16
  • 2015-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多