使用 sp_attach_db 系统存储过程附加数据库时---转载
//附加数据库
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 系统存储过程附加数据库时---转载的更多相关文章
- SQL Server附加数据库时失败,提示:“未重新生成日志,因为有不止一个日志文件”
这个只能是试一下的方法,但不一定能成功,可以尝试如下几个方法: 1.登录远程桌面,然后以.登录SQL Server,并以Windows身份登录,然后再附加数据库时把日志文件删除. 2.试下这个脚本: ...
- Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 最近几天从网上找了几个asp.net的登录案例想要研究研究代码,结果在用 Sql Server2005附 ...
- SQLServer2005+附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
SQLServer2005+ 附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 我们在用Sql SQLServer2005+附加数据库文件时弹出错误信息如下图的处理办法: 方案一: ...
- [经使用有效]Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 最近几天从网上找了几个asp.net的登录案例想要研究研究代码,结果在用 Sql Server2005附 ...
- 附加数据库时,提示“Microsoft SQL Server,错误: 5120”, 解决方案
错误的提示内容为:
- 用T-SQL命令附加数据库时,出现如下异常信息
用T-SQL命令附加数据库时,出现如下异常信息: 无法打开物理文件 XXX.mdf".操作系统错误 5:"5(拒绝访问.)". (Microsoft SQL Server ...
- sqlserver附加数据库时,无法打开物理文件 "xx.mdf"。操作系统错误 5:"5
sqlserver在附加数据库时,提示无法打开物理文件 "xx.mdf".操作系统错误 5:"5 此时可能你是用window验证方式登陆数据库的? 如果是这样,断开连接, ...
- MSSQL附加数据库时提示以下错误: 无法打开物理文件“***.mdf”。操作系统错误 5:“5(拒绝访问。)”。 (Microsoft SQL Server,错误: 5120)
MSSQL附加数据库时提示以下错误: 无法打开物理文件“***.mdf”.操作系统错误 5:“5(拒绝访问.)”. (Microsoft SQL Server,错误: 5120) ***** 解决方法 ...
- sqlserver附加数据库时出错。有关详细信息,请单击“消息”列中的超链接
在SqlServer中附加数据库时,有时会发生下面的错误. 解决 :可能的问题是放置附加数据库的文件夹的权限问题.如下解决.点击放置附加数据库的文件夹-->右键-->属性 权限要设置为完全 ...
随机推荐
- ios 用touchend事件 pc用click touchend击穿
var clickEvent = (function() { if ('ontouchend' in document.documentElement === true) return 'touche ...
- SQLite3创建表及操作
SQLite 创建表 SQLite 的 CREATE TABLE 语句用于在任何给定的数据库创建一个新表.创建基本表,涉及到命名表.定义列及每一列的数据类型. 语法 CREATE TABLE 语句的基 ...
- docker学习及应用
一.docker发展史 为什么要学习容器? 在openstack之后,目前互联网最火热的技术莫过于docker容器了,早在2015年,京东技术备战双11就是使用了10万+Docker,这两年docke ...
- 基于Tesseract实现图片文字识别
一.简介 Tesseract是一个开源的文本识别[OCR]引擎,可通过Apache 2.0许可获得.它可以直接使用,或者使用API从图像中提取打印的文本,支持多种语言.该软件包包含一个ORC引擎[l ...
- python获取当前文件的上一级目录
import osos.path.dirname(os.path.abspath(__file__))
- jmh 微基准测试
选择依据:对某段代码的性能测试. 1.运行方法 mvn clean install java -jar target/benchmarks.jar JMHSample_02 -f 1 2.maven ...
- ES6:let 与 const
在ES6中,let 用来定义变量,const 用来定义常量 事实上var可以看成是js语言设计上的错误,但是不能移除,因为需要向后兼容 于是提出了一个新的关键字let,可以将let看成更完美的var ...
- python3.8的PySimpleGUI学习的温度转换(℃转℉)
一.代码1: #导出模块 import PySimpleGUI as sg #总体布局,sg.InputText(),默认size=(45,1). layout = [ [sg.Text('Celci ...
- Embedded Packet Capture (EPC)
Embedded Packet Capture (EPC)是一个很好的抓包工具,在排障的时候,需要在线抓包的情况下,是一个非常好的选择. EPC在IOS和IOS-XE都是支持,不过,不同平台下有版本的 ...
- 【JS 移动端】获取设置页面大小
获取设置页面大小 function getMobileData() { var ismobile = false; browser = { versions: function () { var u ...