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", "123456"));
                    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-更改该组权限为完全权限,再次附加成功。

好文推荐:

http://blog.csdn.net/smartsmile2012/article/details/8782522  创建数据库 附加数据库等操作

参考链接:

http://blog.csdn.net/blackfield/article/details/6550499

时间: 2024-11-05 02:34:15

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

使用gogs,drone搭建自动部署

使用gogs,drone搭建自动部署 使用gogs,drone,docker搭建自动部署测试环境 Gogs是一个使用go语言开发的自助git服务,支持所有平台Docker是使用go开发的开源容器引擎Drone是一个基于容器技术的持续集成平台.每个构建都在一个临时的Docker容器中执行,使开发人员能够完全控制其构建环境并保证隔离.drone易于安装和使用,其目标是替代jenkins 本文所实现的的功能为当你push代码到gogs时,自动更新您测试环境的二进制文件并重启,实现自动部署(以go开发a

基于最新RHEL7系统的Packstack自动部署RDO(OpenStack Icehouse)

本篇文章是通过最新发布的Red Hat Enterpise Linux 7 系统部署OpenStack,集成到RHEL系统的OpenStack 简称为RDO.此篇是通过制作应答文件answer.conf自动化部署OpenStack Icehouse 版本. 由于采用RHEL7系统在部署中或多或少碰到不少报错的问题,这里只列出我的几张截图,在部署中还是需要根据实际情况来决定,多看下报错及日志文件:例如:解决包的依赖,服务不能没有启动起来,数据库密码设置未成功等:希望本篇可以给部署RDO的同学带来一

修改、分离和附加数据库

一.修改数据库(增大及缩小) 方法1.可以直接数据库属性修改.但是必须注意,缩小数据库的size,需要使用到任务--收缩. 方法2.为了避免系统盲目的切除内存,最好使用命令修改: ALTER DATABASE PAY MODIFY name=payment,size=2MB 二.分离和附加数据库 1.分离数据库:源文件将保留,用于在文件使用过程中复制文件等操作.分离数据库不会删除数据库文件和事务日志,只是在分离之后不会显示在数据库列表中了. 注意:在下列状态下不可以进行数据库的分离 (1)活动状

【大话QT之十三】系统软件自动部署实现方案

本篇文章是对[大话QT之十二]基于CTK Plugin Framework的插件版本动态升级文章的补充,在上篇文章中我们阐述的重点是新版本的插件已经下载到plugins目录后应该如何更新本地正在运行的程序,是整个插件升级实现的后半部分.本篇文章就来讲述软件自动部署(当然,也包括插件升级)的前半部分. 我们必须有这样一点认识,即:我们的程序是运行在用户机器上的,插件更新不是我们手动放进去的,而必须有一种机制使客户端能够检测到需要升级插件了,然后将插件自动下载下来,最后自动进行安装或插件更新. 系统

在打包程序中自动安装SQL Server数据库 .

原文:在打包程序中自动安装SQL Server数据库 . 1.创建安装项目“Setup1”安装项目 在“文件”菜单上指向“添加项目”,然后选择“新建项目”. 在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”.在“名称”框中键入 “setup1”. 单击“确定”关闭对话框. 项目被添加到解决方案资源管理器中,并且文件系统编辑器打开. 在“属性”窗口中,选择 ProductName 属性,并键入”亿万电器成套报价系统”. 2.在安装项目中创建

10-30C#数据库基础--(备份和还原、分离和附加数据库)、语句查询操作

一.数据库是一个大容量的存储数据的仓库,为了保证数据完整性,防止一些数据的意外丢失等情况,需要对数据进行备份和还原. 备份数据不影响数据库的正常运行. 1.备份.还原数据库 首先对数据库进行备份,操作步骤如下: 1)把鼠标放在在选择想要备份的数据库,右击“任务”--“备份”: 2)单击“确定”,弹出“备份数据库”的窗口,在备份类型下面,选择“仅复制备份”,选择“备份过期时间”,添加“目标备份到的位置”,单击“确定”. 3)弹出对话框:提示备份已成功执行. 还原: 备份完成后,删除该数据,利用还原

自动部署LNMP脚本

最近抽时间写了一份LNMP部署脚本,使用源码安装所需软件,源码软件包网络上很容易获取,这里仅贴出脚本内容,大家可以自行在网络上下载对应的软件放在脚本当前目录即可,实际下载的软件包如果与脚本所调用的软件版本号及压缩格式有差异时,可以修改脚本开始的变量定义即可.        脚本会检测目标主机的语音环境,如果目标主机运行中文环境,则脚本运行中的所有提示信息均为中文,反之则提示信息为英文.脚本在安装相关软件的依赖包时会调用YUM安装对应的软件,运行脚本前确认YUM是可用的,否则脚本检测无YUM源可用

使用shell脚本自动部署(发布,重起)maven(java)项目

项目结构如下图 一:系统环境 本机:10.4.18.3 服务器: 10.4.18.4,用户名: web02 二:初始化服务器环境 在服务器上的家目录创建目录deploy,deploy/profile mkdir -p /home/web01/deploy mkdir -p /home/web02/deploy/profile 安装jdk export JAVA_HOME=/home/web02/jdk1.7.0_67 三:源代码(这里演示了一个自己写的http web服务器) com.lala.

Ansible自动部署LNAMP

前言: 借助Ansible自动部署LNAMP,实现高可用nginx反代服务器,中部http+php提供web服务,后端链接同一台mysql数据库 实验环境: ansible主机:10.0.0.10/8 nginx(主):10.0.0.11/8 nginx(备):10.0.0.12/8 虚拟IP:10.0.0.111/32 http1:10.0.0.21/8 http2:10.0.0.22/8 mysql:10.0.0.30/8 编辑Ansible的hosts文件 ####Nginx反代主机地址及