永发信息网

如何通过分离和附加来移动数据库 (Transact

答案:2  悬赏:0  手机版
解决时间 2021-02-05 15:38
如何通过分离和附加来移动数据库 (Transact
最佳答案
有关详细信息,请参阅 ALTER DATABASE (Transact-SQL)。
您可以将分离的数据库移至其他位置,并将其重新附加到相同或不同的服务器实例。安全说明: 建议您不要从未知或不可信来源附加或还原数据库。此类数据库可能包含恶意代码,这些代码可能会执行非预期的 Transact-SQL 代码,或者通过修改架构或物理数据库结构导致错误。使用来自未知或不可信来源的数据库前,请在非生产服务器上针对数据库运行 DBCC CHECKDB,然后检查数据库中的代码,例如存储过程或其他用户定义代码。
在Microsoft SQL Server 2005 中,增强了 sp_detach_db 存储过程,这样分离数据库时就不会删除与数据库相关联的全文索引文件。有关详细信息,请参阅附加和分离全文目录。 注意: 也可以使用分离和附加操作将 SQL Server 版本 7.0 或 SQL Server 2000 数据库升级到 SQL Server 2005。有关详细信息,请参阅如何使用分离和附加来升级数据库 (Transact-SQL)。
过程 通过分离和附加来复制数据库 使用sp_detach_db 存储过程分离该数据库。在Windows 资源管理器或 Windows 命令提示符窗口中,将分离的数据库文件和日志文件移至新位置。注意: 移动单文件数据库时,如果文件小到可以通过电子邮件发送,则可以通过电子邮件来移动该数据库。
即使打算创建新的日志文件,也应该移动日志文件。在某些情况下,重新附加数据库需要使用其现有的日志文件。因此,除非在不使用分离日志文件的情况下可以成功附加数据库,否则,请始终保留所有分离的日志文件。 注意: 如果尝试在不指定日志文件的情况下附加数据库,则附加操作会在日志文件的原始位置中查找文件。如果原始位置还有一份日志,则附加该日志。若要避免使用原始日志文件,请指定新日志文件的路径,或在日志文件复制到新位置之后,删除其原始副本。
使用包含 FOR ATTACH [WITH ] 子句或 FOR ATTACH_REBUILD_LOG 子句的 CREATE DATABASE Transact-SQL 语句来附加复制的文件(有关详细信息,请参阅 CREATE DATABASE (Transact-SQL))。每个数据库都包含一个唯一的标识符,用于将 Service Broker 消息路由到该数据库。如果数据库使用 Service Broker,请参阅管理Service Broker 标识。 注意: 有关使用对象资源管理器来附加数据库的信息,请参阅如何附加数据库 (SQL Server Management Studio)。
示例以下示例创建名为 MyAdventureWorks 的AdventureWorks 数据库副本。AdventureWorks 附加到服务器实例,Transact-SQL 语句即在与该服务器实例连接的查询编辑器窗口中执行。 执行以下 Transact-SQL 语句以分离 AdventureWorks 数据库:
USE master; GO EXEC sp_detach_db @dbname = N'AdventureWorks'; GO 使用您选择的方法,将数据库文件(AdventureWorks_Data.mdf 和 AdventureWorks_log)分别复制到 C:\MySQLServer\AdventureWorks_Data.mdf 和 C:\MySQLServer\AdventureWorks_Log.ldf。
重要提示: 对于生产数据库,请将数据库和事务日志存放在不同的磁盘上。
若要通过网络将文件复制到远程计算机的磁盘上,请使用远程位置的通用命名约定 (UNC) 名称。UNC 名称采用以下格式:\\服务器名称\共享名\路径\文件名。将文件写入至本地硬盘时,必须对 SQL Server 实例使用的用户帐户授予读写远程磁盘文件所需的相应权限。
通过执行以下 Transact-SQL 语句来附加移动的数据库及其日志(可选):
USE master; GO CREATE DATABASE MyAdventureWorks ????????ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'), ????????(FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf') ????????FOR ATTACH; GO 注意: 在SQL Server Management Studio 中,新附加的数据库在对象资源管理器中不是立即可见的。若要查看数据库,请在对象资源管理器中,单击“查看”,再单击“刷新”。在对象资源管理器中展开“数据库”节点后,新附加的数据库即显示在数据库列表中。
全部回答
期待看到有用的回答!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有一本书共有1000页,数字2在页码中出现了多
烟台从开发区做几路车到南山公园和塔山?下车
产品规格繁多的,可将产品结构、耗用原材料和
阳景的意思是什么啊?知道的请说下!
曼天雨品牌女装直营店这个地址在什么地方,我
歆太阳快印地址好找么,我有些事要过去
1997年3月14日早上6时出生日期是什么命
关于古代百姓疾苦的事迹
禄泰苯板厂地址在什么地方,想过去办事
扫雪的意思是什么啊?知道的请说下!
穿越时空回到近代中国,假如你回到1927年,下
一审已已经开庭了我没同意,本人不去拿判决书
我的是小车 现在油耗有点高 是不是该换机油了
逐雀 文言文 译文
李玥婷,李芸汐哪个更好求意见
推荐资讯
沪江cctalk为什么老是闪退
k伏见他爸爸有可能是前任绿王吗
鸦片战争对中国经济的影响,不正确的是CA. 刺
淘宝卖家申诉不成功怎样继续申诉
12款奥迪a6l,2.8是国几的车
我现在汕尾,我有一个亲人就快去世,我想张她
杭州到河南商丘有多远
请问:土建施工员证和高速路施工员证一样吗。
新野跟信阳有多远
封神榜有哪吒杀爹,宝莲灯前传,怎么还有哪吒
天府公寓在什么地方啊,我要过去处理事情
sql 2008的数据库怎么附加到sql2005数据库里
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?