数据备份路径的问题,急,在线等待~

ranliang 2003-07-22 12:01:57
程序里使用下面语句做数据备份,在终端运行程序时候,希望把备份的文件保存在终端的docname路径里面,现在保存的备份文件仍然放在服务器的docname目录下面,怎样才可以把文件备份到终端的计算机上,请大家帮忙啊~

string ls_sql
sqlca.AutoCommit=true
ls_sql = "EXEC sp_addumpdevice 'disk'"+" , 'case_boc' , "+" '"+docname+"'"
EXECUTE IMMEDIATE : ls_sql ;

ls_sql = 'backup database case_boc to disk="'+docname+'"'
execute immediate: ls_sql ;

ls_sql = "exec sp_dropdevice 'case_boc'"
EXECUTE IMMEDIATE : ls_sql ;
sqlca.AutoCommit=false
...全文
94 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
CrazyFor 2003-07-22
  • 打赏
  • 举报
回复
参考:

Transact-SQL 参考


sp_addumpdevice
将备份设备添加到 Microsoft® SQL Server™。

语法
sp_addumpdevice [ @devtype = ] 'device_type' ,
[ @logicalname = ] 'logical_name' ,
[ @physicalname = ] 'physical_name'
[ , { [ @cntrltype = ] controller_type
| [ @devstatus = ] 'device_status'
}
]

参数
[@devtype =] 'device_type',

备份设备的类型,device_type 的数据类型为 varchar(20),没有默认设置,可以是下列值之一。

值 描述
disk 硬盘文件作为备份设备。
pipe 命名管道。
tape 由 Microsoft Windows NT® 支持的任何磁带设备。如果 device 是 tape,则其默认值为 noskip。


[@logicalname =] 'logical_name'

备份设备的逻辑名称,该逻辑名称用于 BACKUP 和 RESTORE 语句中,logical_name 的数据类型为 sysname,没有默认值,并且不能为 NULL。

[@physicalname =] 'physical_name'

备份设备的物理名称。物理名称必须遵照操作系统文件名称的规则或者网络设备的通用命名规则,并且必须包括完整的路径。physical_name 的数据类型为 nvarchar(260),没有默认值,并且不能为 NULL。

当创建远程网络位置上的备份设备时,请确保在其下启动 SQL Server 的名称对远程的计算机有适当的写入能力。

如果要添加磁带设备,那么该参数必须是 Windows NT® 指派给本地磁带设备的物理名称,例如 \\.\TAPE0(对于计算机中的第一个磁带设备)。磁带设备必须连接到服务器计算机上,不能远程使用。如果名称包含非字母数字的字符,请用引号将其引起来。

[@cntrltype =] controller_type

当创建备份设备时,该参数并不是必需的。为脚本提供该参数比较合适,然而 SQL Server 会将其忽略。controller_type 的数据类型为 smallint,默认值为 NULL,可以是下列值之一。

值 描述
2 当 device_type 为 disk 时使用。
5 当 device_type 为 tape 时使用。
6 当 device_type 为 pipe 时使用。


[@devstatus =] 'device_status'

指明是读取 (noskip) ANSI 磁带标签,还是忽略 (skip) 它。device_status 的数据类型为 varchar(40),默认值为 noskip。



说明 可以指定 controller_type 或 device_status,但二者不要同时指定。


返回代码值
0(成功)或 1(失败)

结果集


注释
sp_addumpdevice 将备份设备添加到 master.dbo.sysdevices 表。可以在 BACKUP 和 RESTORE 语句中对其进行逻辑引用。

所有关系和权限问题可能干扰磁盘或文件备份设备的使用。请确保对在其下启动 SQL Server 的帐户给予适当的文件权限。

SQL Server 支持将磁带备份到 Windows NT 支持的磁带设备上。有关 Windows NT 支持的磁带设备的更多信息,请参见 Windows NT 的硬件兼容性列表。若要查看计算机上可用的磁带设备,请使用 SQL Server 企业管理器。

对于特定的磁带驱动器,只应使用推荐的磁带(按驱动器厂商的建议)。若要使用 DAT 驱动器,请使用计算机级的 DAT 磁带 (Digital Data Storage-DDS)。

不能在事务内执行 sp_addumpdevice。

权限
只有 sysadmin 和 diskadmin 固定服务器角色的成员才能执行该过程。

示例
A. 添加磁盘转储设备
下面的示例添加一个名为 MYDISKDUMP 的磁盘备份设备,其物理名称为 C:\Dump\Dump1.bak。

USE master
EXEC sp_addumpdevice 'disk', 'mydiskdump', 'c:\dump\dump1.bak'

B. 添加网络磁盘备份设备
下面的示例显示一个远程磁盘备份设备。在其下启动 SQL Server 的名称必须对该远程文件拥有权限。

USE master
EXEC sp_addumpdevice 'disk', 'networkdevice',
'\\servername\sharename\path\filename.ext'

C. 添加磁带备份设备
下面的示例添加 TAPEDUMP1 设备,其物理名称为 \\.\Tape0。

USE master
EXEC sp_addumpdevice 'tape', 'tapedump1',
'\\.\tape0'


请参见

BACKUP

RESTORE

sp_dropdevice

sp_helpdevice

系统存储过程

©1988-2000 Microsoft Corporation。保留所有权利。

pengdali 2003-07-22
  • 打赏
  • 举报
回复
只能备到服务器上,要不你:

backup database sys to disk='\\你的ip\完全共享目录\a.bak' with init
zjcxc 元老 2003-07-22
  • 打赏
  • 举报
回复
因为所有的sql 语句都是在sql server服务器上执行的,所以你的备份目录都是相对服务器而言
zjcxc 元老 2003-07-22
  • 打赏
  • 举报
回复
要保存数据到客户端,就要将客户端共享一个目录用来保存数据,然后用:

backup database 数据库名 to disk='\\客户机名\共享目录名\备份文件名'

这种方法来备份数据就可以以.

gaoxiaospring 2003-07-22
  • 打赏
  • 举报
回复
我在客户端设置一个目录给服务器共享是可以的.但有人说有时不成功,你可以试试.

34,837

社区成员

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

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