//附加数据库
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. SQL表名,应该用表对应资源对象的复数形式还是单数形式

    原文:http://blog.csdn.net/lizeyang 问题 SQL表名,应该用表对应资源对象的复数形式还是单数形式.例如一个用户表,表名是用user还是users更合适呢?   精华回答 ...

  2. 搭建第一个django项目

    django是python做web最为强大和全能的后端框架,不会django的python如一条咸鱼... 所以开始学习django框架. 首选得在python中下载django 下载命令: pip ...

  3. ios 用touchend事件 pc用click touchend击穿

    var clickEvent = (function() { if ('ontouchend' in document.documentElement === true) return 'touche ...

  4. C语言:计算并输出给定10个数的方差。

    //计算并输出给定10个数的方差. #include<math.h> #include<stdio.h> ]) { double p = 0.0,f=0.0,g=0.0; ; ...

  5. 1143. Longest Common Subsequence

    link to problem Description: Given two strings text1 and text2, return the length of their longest c ...

  6. Vue入门学习总结一:Vue定义

    Vue的功能是为视图提供响应的数据绑定及视图组件,Vue是数据驱动式的,不直接修改DOM而是直接操作数据实现对界面进行修改. 首先我们需要在script中定义一个Vue实例,定义方法如下: var v ...

  7. Plastic Bottle Manufacturer: Plastic Bottle Packaging Material, Is It Degradable?

    For plastic bottle packaging, the current global market demand is still growing. However, for plasti ...

  8. Spring Boot 缓存应用 Ehcache 入门教程

    Ehcache 小巧轻便.具备持久化机制,不用担心JVM和服务器重启的数据丢失.经典案例就是著名的Hibernate的默认缓存策略就是用Ehcache,Liferay的缓存也是依赖Ehcache. 本 ...

  9. java中关于类和对象的一些思考

    就这个问题而言 第一种和第二种定义的变量并不是一种形式 前者我们称为原始数据变量 后者我们称为对象变量 这两种变量的创建方式,定义方式,使用方式都有着很多不同 需要引起注意. 在java中,有着基本的 ...

  10. Composer包收录

    doctrine/annotations #注解 nesbot/carbon #日期和时间处理 gregwar/captcha symfony/console nikic/fast-route #路由 ...