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

MSSQL
一个分页存储过程代码
Sql Server 2000 行转列的实现(横排)
sql2000挂起无法安装的问题的解决方法
完美解决MSSQL"以前的某个程序安装已在安装计算机上创建挂起的文件操作"
SQL Server数据库的修复SQL语句
分页存储过程代码
批量执行sql语句的方法
一条SQL语句搞定Sql2000 分页
SQL Server 海量数据导入的最快方法
SQL Select语句完整的执行顺序
MSSQL 清空数据库的方法
mssql自动备份及自动清除日志文件服务器设置
Sql 语句学习指南
.NET Framework SQL Server 数据提供程序连接池
对有自增长字段的表导入数据注意事项
SQL Server导入、导出、备份数据方法
sql server 临时表 查找并删除的实现代码
该行已经属于另一个表 的解决方法
SQL 注入式攻击的本质
SQL 平均数统计

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 133 ::
收藏到网摘: 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(失败)

结果集