每月我都需要做一次如下工作:
1.将机器A上的某数据库[MyData]利用SQL Server的备份数据库功能,将该库备份成一个文件如MyData.bak
2.通过直连线,连接机器A与机器B,出于安全考虑,平时A与B是断开的
3.通过网络将此文件[MyData.bak]复制到机器B上
4.在机器B上,数据库MyData处于激活状态,暂时没人访问,在机器B上将MyData.bak文件强行恢复成MyData数据库
5.断开A与B的连接
请问如何通过SQL语句序列或存贮过程等来实现
1.将机器A上的某数据库[MyData]利用SQL Server的备份数据库功能,将该库备份成一个文件如MyData.bak
2.通过直连线,连接机器A与机器B,出于安全考虑,平时A与B是断开的
3.通过网络将此文件[MyData.bak]复制到机器B上
4.在机器B上,数据库MyData处于激活状态,暂时没人访问,在机器B上将MyData.bak文件强行恢复成MyData数据库
5.断开A与B的连接
请问如何通过SQL语句序列或存贮过程等来实现
通过SQL语句序列或存贮过程等实现不了
用sp_attach_dbEXEC 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 master..xp_cmdshell 'net use z: \\yizhi\D$ "密码" /user:yizhi\administrator'/*--说明:
exec master..xp_cmdshell 'net use z: \\xz\c$ "密码" /user:xz\administrator'z:是映射网络路径对应本机的盘符,与下面的备份对应
\\xz\c$是要映射的网络路径xz\administrator
xz是远程的计算机名,
administrator是登陆的用户名
密码 面指定的administrator用户的密码
--*/--备份;with init覆盖|noinit添加
backup database 库名 to disk='E:\H_BACKUP.bak' with init--COPY
exec master..xp_cmdshell 'copy E:\H_BACKUP.bak z:'--删除(这句可以去掉)
--exec master..xp_cmdshell 'del E:\H_BACKUP.bak'--完成后删除映射
exec master..xp_cmdshell 'net use z: /delete'