当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server 2000 数据库分离与附加

MSSQL
最簡便的備份MySql資料庫方法
MS SQL 数据库备份和还原的几种方法
深入浅出SQL系列教程之SQL语言简介
Asp备份与恢复SQL Server
实战MSSQL 2000数据库之MSSQL Server安装
五种提高SQL Server性能的方法
SQL Server数据库备份和恢复措施
INSERT语法使用技巧一例
sql注入防范方法
操作数据库结构Sql语句
精妙SQL语句介绍
SQL Server常见连接错误
SQL如何备份并压缩备份文件?
Access数据库升迁SQLServer
SQL Server中如何计算农历
SQL SERVER Agent服务使用技巧小结
SQL SERVER使用嵌套触发器
“SQL Server不存在或访问被拒绝”问题的解决
SQL Server 管理常用的SQL和T-SQL(二)
谈SQL Server 2005中的T-SQL增强

MSSQL 中的 SQL Server 2000 数据库分离与附加


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 61 ::
收藏到网摘: n/a

sp_detach_db
从服务器分离数据库,并可以选择在分离前在所有的表上运行 UPDATE STATISTICS。

语法
sp_detach_db [ @dbname = ] 'dbname'
    [ , [ @skipchecks = ] 'skipchecks' ]

参数
[@dbname =] 'dbname'

要分离的数据库名称。dbname 的数据类型为 sysname,默认值为 NULL。

[@skipchecks =] 'skipchecks'

skipchecks 的数据类型为 nvarchar(10),默认值为 NULL。如果为 true,则跳过 UPDATE STATISTICS。
如果为 false,则运行 UPDATE STATISTICS。对于要移动到只读媒体上的数据库,此选项很有用。

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

结果集

注释
使用 sp_attach_db 或 sp_attach_single_file_db 保留并重新附加分离文件。文件也可以移动并附加到其它服务器上。

权限
只有 sysadmin 固定服务器角色的成员才能执行 sp_detach_db。

示例
下面的示例分离 pubs 数据库,并将 skipchecks 设为 true。
EXEC sp_detach_db 'pubs', 'true'

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(失败)

结果集

注释
只应对以前使用显式 sp_detach_db 操作从数据库服务器分离的数据库执行 sp_attach_db。如果必须指定多于 16 个文件,请使用带有 FOR ATTACH 子句的 CREATE DATABASE。

如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库以进行复制,则应该运行 sp_removedbreplication 从数据库删除复制。

权限
只有 sysadmin 和 dbcreator 固定服务器角色的成员才能执行本过程。

示例
下面的示例将 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'

sp_attach_single_file_db
只有一个数据文件的数据库附加到当前服务器。

语法
sp_attach_single_file_db [ @dbname = ] 'dbname'
    , [ @physname = ] 'physical_name'

参数
[@dbname =] 'dbname'

要附加到服务器的数据库的名称。dbname 的数据类型为 sysname,默认值为 NULL。

[@physname =] 'phsyical_name'

据库文件的物理名称,包括数路径。physical_name 的数据类型为 nvarchar(260),默认值为 NULL。

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

结果集

注释
当使用 sp_attach_single_file_db 将数据库附加到服务器时,它创建一个新的日志文件并执行额外的清除工作,从新附加的数据库中删除复制。

仅对以前使用显式 sp_detach_db 操作从服务器分离的数据库执行 sp_attach_single_file_db。

权限
只有 sysadmin 和 dbcreator 固定服务器角色的成员才能执行本过程。

示例
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。

EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs',
   @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'

sp_helpfile
返回与当前数据库关联的文件的物理名称及特性。使用此存储过程确定附加到服务器或从服务器分离的文件名。

语法
sp_helpfile [ [ @filename = ] 'name' ]

参数
[@filename =] 'name'

是当前数据库中任意文件的逻辑名称。name 的数据类型为 sysname,默认值为 NULL。如果不指定 name,会列出当前数据库中所有文件的特性。

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

结果集