附加数据库

Fancy_Free 2004-11-06 05:41:23
请问在sqlserver中怎么附加只有一个mdf文件的数据库?
...全文
170 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
flappySoft 2004-11-07
  • 打赏
  • 举报
回复
难怪我有一个数据库,结构以前别人建得不是很规范,考虑到数据库文件及日志文件很大,所以想删掉日志文件,老是会说附加数据库失败,原来是这样,有没有补救的办法呢?
xiaosong8584 2004-11-06
  • 打赏
  • 举报
回复
支持楼上的说法
funsuzhou 2004-11-06
  • 打赏
  • 举报
回复
学习
zjcxc 元老 2004-11-06
  • 打赏
  • 举报
回复
新建的日志对数据库及操作没有影响

反而是丢失的日志文件对数据库及操作有可能产生影响,日志文件中存放的可能是有用(没有写回数据库)的数据,这种情况下,如果日志文件丢失,就可以附加数据库失败,或者附加数据库成功,但丢失一部分数据.
popmailzjw 2004-11-06
  • 打赏
  • 举报
回复
直接Attach就好了,它会自动建立的
flappySoft 2004-11-06
  • 打赏
  • 举报
回复
好像有时候有一点问题
flappySoft 2004-11-06
  • 打赏
  • 举报
回复
新创建的日志对以前的数据及操作有影响吗?
zjcxc 元老 2004-11-06
  • 打赏
  • 举报
回复
企业管理器中附加时,没有日志文件会提示你是否创建提,选择是即可.
zjcxc 元老 2004-11-06
  • 打赏
  • 举报
回复
--这句就够了
sp_attach_single_file_db '数据库名','数据文件名'
mgsray 2004-11-06
  • 打赏
  • 举报
回复
在企业管理器里面直接附加,会提示没有日志,是否生成,选择是生成日志即可
hwh88888 2004-11-06
  • 打赏
  • 举报
回复
可以通过sql语句
第一步
sp_detach_db '数据库名'
第二步
sp_attach_single_file_db '数据库名','数据库名为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文件

34,871

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧