sqlserver 如何定时自动备份数据库中的一张表

时间:2022-09-19 14:05:01
我有个数据库,其中有两张表很重要,我要10分钟自动备份一次如何设置?如何操作?望各位高手赐教

13 个解决方案

#1


用JOB
企业管理器
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
                      
--确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排为一天一次


然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行

设置方法:
我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.

#2


job+ creata table ...

#3


写个JOB,定时执行备份语句,

#4


幫頂~

#5


如何写job 烦请具体点谢谢!例如我数据库名为zbsj  表名为hyzl

#6


DECLARE  @TABLENAME  VARCHAR(100)  

SELECT  @TABLENAME='.......'    ---使其形如:AAAA20020812  

--建表  

exec('  

CREATE  TABLE  '+  @tablename  +'  (  

........)  

  

')  

--插入  

EXEC  ('  

insert  into  '+  @tableName+'  

          select  *  from  S_tableName  

')  

  

再把上面代码保存为存储过程,定期用JOB运行它就  OK了。

#7


只备份一张表是不可行的。要备份整个数据库

#8


不知道你說的備份是怎麼樣的?
定期將數據插入到另外一個表?
go
truncate table tb
go
insert tb select * from ta

#9


create proc proc_trans_backup
as
declare @tablename varchar(30)
select @tablename = 'hyzl'+convert(varchar(10),getdate(),112)--表名自己改改

exec('select * into '+@tablename+' from hyzl')

#10


备份到哪里

#11


引用 9 楼 nianran520 的回复:
SQL codecreateproc proc_trans_backupasdeclare@tablenamevarchar(30)select@tablename='hyzl'+convert(varchar(10),getdate(),112)--表名自己改改exec('select * into'+@tablename+' from hyzl')

同意这种方法,直接用临时表保存就行

#12


定期用最新的备份覆盖

#13


写个存储过程然后用job

#1


用JOB
企业管理器
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
                      
--确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排为一天一次


然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行

设置方法:
我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.

#2


job+ creata table ...

#3


写个JOB,定时执行备份语句,

#4


幫頂~

#5


如何写job 烦请具体点谢谢!例如我数据库名为zbsj  表名为hyzl

#6


DECLARE  @TABLENAME  VARCHAR(100)  

SELECT  @TABLENAME='.......'    ---使其形如:AAAA20020812  

--建表  

exec('  

CREATE  TABLE  '+  @tablename  +'  (  

........)  

  

')  

--插入  

EXEC  ('  

insert  into  '+  @tableName+'  

          select  *  from  S_tableName  

')  

  

再把上面代码保存为存储过程,定期用JOB运行它就  OK了。

#7


只备份一张表是不可行的。要备份整个数据库

#8


不知道你說的備份是怎麼樣的?
定期將數據插入到另外一個表?
go
truncate table tb
go
insert tb select * from ta

#9


create proc proc_trans_backup
as
declare @tablename varchar(30)
select @tablename = 'hyzl'+convert(varchar(10),getdate(),112)--表名自己改改

exec('select * into '+@tablename+' from hyzl')

#10


备份到哪里

#11


引用 9 楼 nianran520 的回复:
SQL codecreateproc proc_trans_backupasdeclare@tablenamevarchar(30)select@tablename='hyzl'+convert(varchar(10),getdate(),112)--表名自己改改exec('select * into'+@tablename+' from hyzl')

同意这种方法,直接用临时表保存就行

#12


定期用最新的备份覆盖

#13


写个存储过程然后用job