企业管理器
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
                      declare @strsql varchar(1000)
                      declare @strdirname varchar(50)
                      declare @strcmd varchar(50)
                      declare @strsend varchar(1000)
                      declare @strdate varchar(50)
                      exec master..xp_cmdshell 'net use \\192.168.0.151\d$ Password /user:192.168.0.151\administrator'
                      set @strsql='backup database new_his to disk=''\\192.168.0.151\d$\serverd\'
                      set @strdirname=replace(substring(convert(varchar(20),getdate(),120),1,10),'-','')+'12'
                      set @strcmd='md \\192.168.0.151\d$\serverd\'
                      set @strcmd=@strcmd+@strdirname
                      exec master..xp_cmdshell @strcmd
                      --print @strsql
                      set @strsql=@strsql+@strdirname+'\new_hisbackup.dat'' with init,nounload,noskip,noformat'
                      --print @strsql
                      exec (@strsql)                     ----其中写的IP地址及共享目录,网友自行修改,Password一定要正确--确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排
然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行设置方法:
我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.

解决方案 »

  1.   

    SQL EXPRESS的自动备份..看我的blog.  http://blog.csdn.net/liangCK/archive/2008/11/16/3311933.aspx
      

  2.   

    --SQL如何备份到异机 写成存储过程,建立作业定时备份~~~ 
    --在sql中映射一下就可以了 
    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' 
      

  3.   

    已成功添加 Linked Server,EXEC sp_addlinkedserver
       @server = 'ServerB',
       @srvproduct = '',
       @provider = 'SQLOLEDB',
       @datasrc = 'ServerB\SQLEXPRESS'EXEC sp_addlinkedsrvlogin @rmtsrvname = 'ServerB',
                              @useself = 'false',
                              @locallogin = 'sa',
                              @rmtuser = 'sa',
                              @rmtpassword = '1'执行 select * from ServerB.dbABC.dbo.tabXYZ 成功返回结果
    为 job 添加目标服务器时:use msdb
    go
    -- Target the job at db server
    exec sp_add_jobserver @job_name = 'BackupFull',
                          @server_name = 'ServerB'
    go报错 The specified @server_name ('ServerB') does not exist.
      

  4.   

    谢谢各位踊跃回答, 但有几位同学都没仔细审题啊。1. 我的目的 不是 在备份时把文件存到远程机器;而是使用本地的 SQL Server Agent 服务来备份远程的数据库, 因远程服务器没有 SQL Server Agent service;2. 使用 Windows 的 计划任务 可以达到目的, 但此方法不够可靠亦不够方便;期待更多大虾指点
      

  5.   

    你直接在job的存储过程中使用ServerB.dbABC.dbo.tabXYZ 备份不可以吗
      

  6.   

    设有A,B二服务器。
    B装有agent 服务。现在b上建立job为A库db1进行备份。简单做法分三步:1,在要备份的服务器A上建立存储过程,存储过程执行的即为备份命令,备份db1,存储过程名设为 proc_BackupDB1。
    2,在具有sqlserver agent的服务器B上建立链接服务器ServerA.
    3,在服务器B上建立作业,执行 步聚为 EXEC ServerA.master.dbo.proc_BackupDB1
      

  7.   


    BACKUP DATABASE ServerB.dbABC TO DISK = 'd:\DBBackup\dbABC_20081124.bak'
    报语法错误, 不允许有 ServerB. 这个前缀。
    RPC 这个方法应该可行, 有点不爽的是要在每个需要备份的库都见一次存储过程。
      

  8.   

    正统的办法估计是 Creating a Multiserver Environment, 将有 Agent service 的作为 Master, Express 作为 Target.权衡下来, 远程调用存储过程是次优选择。谢谢各位捧场。