转自心存善念 原文 C# 自动部署之附加数据库

看着别人的网站能够自动安装,数据库自动附加,觉得很神奇很向往,但是始终米有去手动实践。

网上找了下资料,发现实现起来其实很简单

直接code

private bool Attachdb()
{
//sMDBFile 为mdf文件路径
//sLog 为ldf文件路径
string sMDBFile = Server.MapPath("/data/DBTest.mdf");
string sLog = Server.MapPath("/data/DBTest_log.ldf");
string dbname = "DBTest";
try
{
string sql = string.Empty; if (System.IO.File.Exists(sMDBFile))
{
sql = "EXEC sp_attach_db @dbname = '" + dbname +
"', @filename1 = '" + sMDBFile +
"',@filename2='" + sLog + "'";
SqlConnection conn = new SqlConnection(string.Format("Data Source={0};Initial Catalog=master;User ID={1};PWD={2}", "(local)", "sa", ""));
using (conn)
{
lock (conn)
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
}
}
}
return true;
}
catch
{
return false;
}
}

权限问题:

用T-SQL命令附加数据库时,出现如下异常信息:

无法打开物理文件 XXX.mdf"。操作系统错误 5:"5(拒绝访问。)"。 (Microsoft SQL Server,错误: 5120)

解决方案:

找到xxx.MDF与xxx_log.LDF文件,右键-属性-安全-在组或用户名处添加Authenticated Users-更改该组权限为完全权限,再次附加成功。

C# 自动部署之附加数据库的更多相关文章

  1. c# 通过配置自动附加数据库

    using System; using System.Collections.Generic; using System.Windows.Forms; using System.Data.SqlCli ...

  2. CICD - Teamcity 配置之一: 数据库自动部署

    数据库开发过程不是一次完成的,也是一个迭代的过程.如何快速开发和部署新的数据库对象,部署到不同的环境中,还有就是可不可以快速重建数据库对象,这里不包括数据部分. 首先从官网下载Teamcity:htt ...

  3. 附加数据库后无法创建发布,error 2812 解决

    日前,由于业务需要,我要把一个数据库直接迁移到新的实例上 用的方法比较古老,就是直接停旧服务器,将数据文件复制到新服务器上,附加数据库 当然这个附加没有什么可说的了,但是在附加后需要将原来库上的发布重 ...

  4. 使用gogs,drone搭建自动部署

    使用gogs,drone搭建自动部署 使用gogs,drone,docker搭建自动部署测试环境 Gogs是一个使用go语言开发的自助git服务,支持所有平台Docker是使用go开发的开源容器引擎D ...

  5. SQLSERVER2012 附加数据库重名的问题

    SQL2012附加数据库时如何更改数据库名称呢 方法一: 在“附加为”那一栏填写新的数据库名称就可以 方法二: 使用脚本 附加时点击脚本会自动生成附加脚本 直接修改database的名称即可!

  6. SQL Server 2008 数据库镜像部署实例之一 数据库准备

    SQL Server 2008 数据库镜像部署实例之一 数据库准备 一.目标 利用Sql Server 2008 enterprise X64,建立异步(高性能)镜像数据库,同时建立见证服务器实现自动 ...

  7. 记录使用gogs,drone搭建自动部署测试环境

    使用gogs,drone,docker搭建自动部署测试环境 Gogs是一个使用go语言开发的自助git服务,支持所有平台 Docker是使用go开发的开源容器引擎 Drone是一个基于容器技术的持续集 ...

  8. 做了一个简易的git 代码自动部署脚本

    做了一个简易的git 代码自动部署脚本 http://my.oschina.net/caomenglong/blog/472665 发表于2个月前(2015-06-30 21:08)   阅读(200 ...

  9. C#_ 项目打包附加数据库

    C#_ 项目打包附加数据库 2010-07-11 23:22:45|  分类: Winfrom|举报|字号 订阅     实现效果:安装项目时直接附加数据库. 1.首先在需要部 署的项目的解决方案资源 ...

随机推荐

  1. mysql登录不了及修改密码

    安装mariadb,默认是无密码的,但一般是指要设置密码的.在设置密码时出现各种问题,可能还是不太明白其原理. 一下我尝试了两种方法,但都失败了.下面这两个是我尝试的方法: 一.网上最多的方法是 1. ...

  2. Core MIDI and Friends

    http://www.slideshare.net/invalidname/core-midi-and-friends               31 of 31     Core MIDI and ...

  3. Android SDK Manager中不显示未下载的api解决方案

    Android SDK 在线更新镜像服务器资源用户评价:  / 14 Android SDK 在线更新镜像服务器资源:大连东软信息学院镜像服务器地址:http://mirrors.neusoft.ed ...

  4. Where与Having的区别

    地球人都知道,Where关键字的作用是过滤,选取符合条件的记录,而Having关键字的作用则是,为聚合结果指定条件.但是,在某些条件下,使用这两者可以得到一样的结果. 比如以下的例子: ) FROM ...

  5. Chrome和IE中使用window.open函数

    做前端开发的人员经常回遇到使用windows.open这个函数来打开一个新的网页窗口,使用这个函数的时候有些需要注意的地方,在Chrome和IE下该函数还是有一些细节性的区别. 以下是我在项目中使用的 ...

  6. mac编辑器快捷键(自己摸索出来的)

    control + a  行首 control + e  行尾 control + f   向右移动 control + b 向左移动 control + k   删除光标后面 cmd + delet ...

  7. (原创)VM中的CentOS6.4中安装CloudStack6.3①

    CloudStack是一个功能强大.UI友好的开源云(IaaS)计算解决方案.自Ctrix将CloudStack捐献给 apache 后,一直持续高速发展,其社区活跃度已经渐渐赶上风头一时无两的另一开 ...

  8. linuxz终端开启echo颜色显示

    echo输出命令echo [选项] [输出内容]-e //支持反斜线控制的字符转换:控制字符:\a //输出警告音:\b //退格键,也就是向左删除键:\n //换行符:\r //回车键:\t //制 ...

  9. ORACLE 数据库 MOD 函数用法

    1.求2和1的余数. Select mod(2,1) from dual: 2能被1整除所以余数为0. 2.MOD(x,y)返回X除以Y的余数.如果Y是0,则返回X的值. Select mod(2,0 ...

  10. 11.12模拟考T2(GCD)

    2.梅花桩   (blossom.pas/c/cpp) [问题描述] 小x在练习一门轻功,这门轻功是在梅花桩上跳来跳去,这门轻功是严格按照直线从一个梅花桩直接跳到另外一个梅花桩上.因为小x有恐高症,所 ...