//附加数据库
sp_attach_db
当使用 sp_attach_db 系统存储过程附加数据库时。

sp_attach_db:将数据库附加到服务器。
语法
sp_attach_db [ @dbname = ] 'dbname' , [ @filename1 = ] 'filename_n'
[ ,...16 ]

参数
[@dbname =] 'dbname'
要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为 sysname,默认值为 NULL。

[@filename1 =] 'filename_n'

数据库文件的物理名称,包括路径。filename_n 的数据类型为 nvarchar(260),默认值为 NULL。最多可以指定
16 个文件名。
参数名称以 @filename1 开始,递增到
@filename16。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。
该列表还必须包括数据库分离后所有被移动的文件。

返回代码值:0(成功)或 1(失败)

eg:下面的示例将 pubs 中的两个文件附加到当前服务器。

①:EXEC sp_attach_db 'cxdata', 'D:\Microsoft SQL
Server\MSSQL$MSAUDITTD\Data\cxdata_Data.MDF'

②:EXEC sp_attach_db @dbname = N'pubs',
   @filename1 = N'c:\Program
Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
   @filename2 = N'c:\Program
Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'

③:EXEC sp_attach_db @dbname = N'Ty20051029101451aaa',
   @filename1 =
N'd:\5屏幕\Ty20051029101451aaa_data.mdf',
   @filename2 =
N'd:\5屏幕\Ty20051029101451aaa_log.ldf'
---解决问题了

//删除数据库
DROP
DATABASE

从Microsoft? SQL Server? 删除一个或多个数据库。删除数据库将删除数据库所使用的数据库文件和磁盘文件。

语法 :DROP DATABASE database_name [ ,...n ]

参数 :database_name 指定要删除的数据库名称。从 master 数据库中执行 sp_helpdb
以查看数据库列表。
eg:   exec sp_helpdb database_name

exec Drpo DataBase [Ty20051029101451aaa]

//分离数据库
可以使用 sp_detach_db 存储过程分离该数据库,然后使用带有 FOR ATTACH 子句的 CREATE DATABASE
重新附加。
sp_detach_db Archive
GO
CREATE DATABASE Archive
ON PRIMARY (FILENAME = 'c:\program files\microsoft
sqlserver\mssql\data\archdat1.mdf')
FOR ATTACH
GO

//显示当前数据库信息
--select * from Master..sysDatabases

//新建---不行啊
CREATE DATABASE TestOA
ALTER DATABASE TestOA SET OFFLINE WITH ROLLBACK IMMEDIATE
RESTORE DATABASE TestOA From disk='C:\Documents and
Settings\Administrator\桌面\帐套\data\Template.Dat'
ALTER DATABASE TestOA SET OFFLINE WITH ROLLBACK IMMEDIATE

exec sp_detach_db Km20051030011601 
--分离数据库
exec sp_attach_single_file_db
km20051030011601,'D:\TestDatabase\Km20051030011601.mdf'--只附加.mdf文件

//附加数据库
sp_attach_db
当使用 sp_attach_db 系统存储过程附加数据库时。

sp_attach_db:将数据库附加到服务器。
语法
sp_attach_db [ @dbname = ] 'dbname' , [ @filename1 = ] 'filename_n' [ ,...16 ]

参数
[@dbname =] 'dbname'
要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为 sysname,默认值为 NULL。

[@filename1 =] 'filename_n'

数据库文件的物理名称,包括路径。filename_n 的数据类型为 nvarchar(260),默认值为 NULL。最多可以指定 16 个文件名。
参数名称以 @filename1 开始,递增到 @filename16。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。
该列表还必须包括数据库分离后所有被移动的文件。

返回代码值:0(成功)或 1(失败)

eg:下面的示例将 pubs 中的两个文件附加到当前服务器。

EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'

EXEC sp_attach_db @dbname = N'Ty20051029101451aaa',
@filename1 = N'd:\5屏幕\Ty20051029101451aaa_data.mdf',
@filename2 = N'd:\5屏幕\Ty20051029101451aaa_log.ldf'
---解决问题了

//删除数据库
DROP DATABASE
从Microsoft? SQL Server? 删除一个或多个数据库。删除数据库将删除数据库所使用的数据库文件和磁盘文件。

语法 :DROP DATABASE database_name [ ,...n ]

参数 :database_name 指定要删除的数据库名称。从 master 数据库中执行 sp_helpdb 以查看数据库列表。
eg: exec sp_helpdb database_name

exec Drpo DataBase [Ty20051029101451aaa]

//分离数据库
可以使用 sp_detach_db 存储过程分离该数据库,然后使用带有 FOR ATTACH 子句的 CREATE DATABASE 重新附加。
sp_detach_db Archive
GO
CREATE DATABASE Archive
ON PRIMARY (FILENAME = 'c:\program files\microsoft sqlserver\mssql\data\archdat1.mdf')
FOR ATTACH
GO

//显示当前数据库信息
--select * from Master..sysDatabases

//新建---不行啊
CREATE DATABASE TestOA
ALTER DATABASE TestOA SET OFFLINE WITH ROLLBACK IMMEDIATE
RESTORE DATABASE TestOA From disk='C:\Documents and Settings\Administrator\桌面\帐套\data\Template.Dat'
ALTER DATABASE TestOA SET OFFLINE WITH ROLLBACK IMMEDIATE

exec sp_detach_db Km20051030011601 --分离数据库
exec sp_attach_single_file_db km20051030011601,'D:\TestDatabase\Km20051030011601.mdf'--只附加.mdf文件

使用 sp_attach_db 系统存储过程附加数据库时---转载的更多相关文章

  1. SQL Server附加数据库时失败,提示:“未重新生成日志,因为有不止一个日志文件”

    这个只能是试一下的方法,但不一定能成功,可以尝试如下几个方法: 1.登录远程桌面,然后以.登录SQL Server,并以Windows身份登录,然后再附加数据库时把日志文件删除. 2.试下这个脚本: ...

  2. Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法

    Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 最近几天从网上找了几个asp.net的登录案例想要研究研究代码,结果在用 Sql Server2005附 ...

  3. SQLServer2005+附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法

    SQLServer2005+ 附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 我们在用Sql SQLServer2005+附加数据库文件时弹出错误信息如下图的处理办法: 方案一: ...

  4. [经使用有效]Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法

    sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 最近几天从网上找了几个asp.net的登录案例想要研究研究代码,结果在用 Sql Server2005附 ...

  5. 附加数据库时,提示“Microsoft SQL Server,错误: 5120”, 解决方案

    错误的提示内容为:

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

    用T-SQL命令附加数据库时,出现如下异常信息: 无法打开物理文件 XXX.mdf".操作系统错误 5:"5(拒绝访问.)". (Microsoft SQL Server ...

  7. sqlserver附加数据库时,无法打开物理文件 "xx.mdf"。操作系统错误 5:"5

    sqlserver在附加数据库时,提示无法打开物理文件 "xx.mdf".操作系统错误 5:"5 此时可能你是用window验证方式登陆数据库的? 如果是这样,断开连接, ...

  8. MSSQL附加数据库时提示以下错误: 无法打开物理文件“***.mdf”。操作系统错误 5:“5(拒绝访问。)”。 (Microsoft SQL Server,错误: 5120)

    MSSQL附加数据库时提示以下错误: 无法打开物理文件“***.mdf”.操作系统错误 5:“5(拒绝访问.)”. (Microsoft SQL Server,错误: 5120) ***** 解决方法 ...

  9. sqlserver附加数据库时出错。有关详细信息,请单击“消息”列中的超链接

    在SqlServer中附加数据库时,有时会发生下面的错误. 解决 :可能的问题是放置附加数据库的文件夹的权限问题.如下解决.点击放置附加数据库的文件夹-->右键-->属性 权限要设置为完全 ...

随机推荐

  1. Shiro入门学习与实战(一)

    一.概述 1.Shiro是什么? Apache Shiro是java 的一个安全框架,主要提供:认证.授权.加密.会话管理.与Web集成.缓存等功能,其不依赖于Spring即可使用: Spring S ...

  2. springboot学习4使用日志:logback

    springboot学习4使用日志:logback 一.基本知识说明 SpringBoot默认使用logback作为日志框架 ,所以引入起步依赖后就可以直接使用logback,不需要其他依赖. Spr ...

  3. 解决 IDEA 下 struts.xml 中 extends="struts-default" 报红的问题

    现象 在IDEA中配置struts.xml时 extends="struts-default" 报红,配置拦截器时属性无预选项提示,也爆红. struts.xml本身的配置并没有错 ...

  4. 基础_04_list and tuple

    一.list(列表) list是Python里的一种容器,里面可以存储多个任何类型的数据,长度也可以任意伸缩,可以像C语言中数组那样,按照索引下标获取对应的值.但数组是一个存储多个固定类型变量的连续内 ...

  5. ES6:let 与 const

    在ES6中,let 用来定义变量,const 用来定义常量 事实上var可以看成是js语言设计上的错误,但是不能移除,因为需要向后兼容 于是提出了一个新的关键字let,可以将let看成更完美的var ...

  6. elasticsearch数据组织结构

    elasticsearch数据组织结构 1.      mapping 1.1.    简介 mapping:意为映射关系,特别是指组织结构.在此语境中可理解为数据结构,包括表结构,表约束,数据类型等 ...

  7. Spring Boot 学习前你应该知道的 Maven 知识

    Maven 是什么? 回答这个问题,我们先来了解下没有Maven,我们是怎么使用开发者工具IDE去开发Java程序的.我之前开发Java程序不多,但是我还是记得,我是从网上下载或从合作方拷贝 jar ...

  8. ROS机器人系统学习——踩坑之路

    推荐学习教程:深蓝学院 机器人操作系统ROS理论与实践学习 在学习到第2讲ROS基础的分布式通信时,一直卡在这里,主机开启小海龟后,从机虽然可以通过 rostopic list 列出当前的所有topi ...

  9. 前端开发:javascript中的面向对象

    前端开发:面向对象与javascript中的面向对象实现(一) 面向对象理解: 面向对象是一种对现实世界理解和抽象的方法,是一种先进的程序设计理念,是一种比较抽象的,多形态的设计模式.我们可以这么理解 ...

  10. Spark操作MySQL,Hive并写入MySQL数据库

    最近一个项目,需要操作近70亿数据进行统计分析.如果存入MySQL,很难读取如此大的数据,即使使用搜索引擎,也是非常慢.经过调研决定借助我们公司大数据平台结合Spark技术完成这么大数据量的统计分析. ...