怎么在客户端(也就是只能用查询分析器的情况下)能够把DATA下的某个数据库MDF文件导出来到客户端机器上来呢?
怎么在客户端(也就是只能用查询分析器的情况下)能够把DATA下的某个数据库MDF文件导出来到客户端机器上来呢?
...全文
请发表友善的回复…
发表回复
debug2003 2003-12-24
- 打赏
- 举报
我先去试了啊
w_rose 2003-12-24
- 打赏
- 举报
呵呵!在客户端吗?将客户端某个开放共享的目录告诉服务器,然后服务器将数据库备份(backup命令)到这个目录中。这可以写成一个存储过程。
zjcxc 元老 2003-12-24
- 打赏
- 举报
--你有足够的权限吗?如果有,可以用下面的方法:
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
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。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。该列表还必须包括数据库分离后所有被移动的文件。
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 将试图基于存储在主文件中的不正确的文件位置信息附加文件,且不能成功附加数据库
分离数据库。
将数据库文件移到另一服务器或磁盘。
通过指定移动文件的新位置附加数据库。
当附加在数据库上时,必须指定主数据文件的名称和物理位置。主文件包含查找由数据库组成的其它文件所需的信息,除非自分离了数据库后那些文件中的一个或多个已改变了位置。除主文件外,还必须指出其它任何已改变位置的文件。否则,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'
你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'
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
下到客户端。
那你
backup database dbname to disk='c:/wwwroot/dbname.bak'
然后用
http://服务器ip/dbname.bak
下到客户端。
gmlxf 2003-12-24
- 打赏
- 举报
负极不行吧,我也不知道。
如果是数据库与web服务器是同一台服务器,那么你可以将你的数据库backup到web的iis下面,然后用路径访问下载就可以了。
如果是数据库与web服务器是同一台服务器,那么你可以将你的数据库backup到web的iis下面,然后用路径访问下载就可以了。