导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

怎么在客户端(也就是只能用查询分析器的情况下)能够把DATA下的某个数据库MDF文件导出来到客户端机器上来呢?

nup 2003-12-24 04:41:24
怎么在客户端(也就是只能用查询分析器的情况下)能够把DATA下的某个数据库MDF文件导出来到客户端机器上来呢?
...全文
31 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
debug2003 2003-12-24
我先去试了啊
回复
w_rose 2003-12-24
呵呵!在客户端吗?将客户端某个开放共享的目录告诉服务器,然后服务器将数据库备份(backup命令)到这个目录中。这可以写成一个存储过程。
回复
--你有足够的权限吗?如果有,可以用下面的方法:
use master
go

--共享你要复制的文件所在的目录:
exec master.dbo.XP_cmdshell 'net share aa=c:\xx' --c:\xx是你要复制文件所在的目录名
go

--使你要复制数据文件的数据库脱机.这样才能复制
sp_dboption '你要复制的数据库名','offline','true'
go


/*--下面的步骤在我的电脑中操作:

我的电脑--地址栏输入:\\服务器名\aa
这样就可以打开你要复制数据库所在的目录了.
进行数据文件的复制

--结束,下面的在查询分析器中操作--*/

--恢复数据库的状态
sp_dboption '你要复制的数据库名','offline','false'
go

--删除共享
exec master.dbo.XP_cmdshell 'net share c:\xx /delete /y' --c:\xx是你要复制文件所在的目录名
go
回复
Rotaxe 2003-12-24
语法
sp_detach_db [ @dbname = ] 'dbname'
[ , [ @skipchecks = ] 'skipchecks' ]

参数
[@dbname =] 'dbname'

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

[@skipchecks =] 'skipchecks'

skipchecks 的数据类型为 nvarchar(10),默认值为 NULL。如果为 true,则跳过 UPDATE STATISTICS。如果为 false,则运行 UPDATE STATISTICS。对于要移动到只读媒体上的数据库,此选项很有用
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。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。该列表还必须包括数据库分离后所有被移动的文件。

回复
Rotaxe 2003-12-24
将数据库或数据库文件移动到另一服务器或磁盘:

分离数据库。


将数据库文件移到另一服务器或磁盘。


通过指定移动文件的新位置附加数据库。
当附加在数据库上时,必须指定主数据文件的名称和物理位置。主文件包含查找由数据库组成的其它文件所需的信息,除非自分离了数据库后那些文件中的一个或多个已改变了位置。除主文件外,还必须指出其它任何已改变位置的文件。否则,SQL Server 将试图基于存储在主文件中的不正确的文件位置信息附加文件,且不能成功附加数据库
回复
gmlxf 2003-12-24
这样安全有点问题吧。

你backup的时候加上密码
backup database dbname to disk='c:/wwwroot/dbname.bak' with password='123456'

恢复:
restore database dbname from disk='c:/wwwroot/dbname.bak' with password='123456'

回复
jingxijun 2003-12-24
按照烛光的做法备份,恢复用
restore database dbname from disk='c:/wwwroot/dbname.bak'
回复
gmlxf 2003-12-24
如你的服务器web的根目录是c:/wwwroot/

那你
backup database dbname to disk='c:/wwwroot/dbname.bak'

然后用
http://服务器ip/dbname.bak
下到客户端。


回复
gmlxf 2003-12-24
负极不行吧,我也不知道。

如果是数据库与web服务器是同一台服务器,那么你可以将你的数据库backup到web的iis下面,然后用路径访问下载就可以了。
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告