这个语句会先在数据库中建一个backname的表,然后将数据从tablename表中导入到backname中,但如果数据库中已经存backname这个表的话就会报错,而且这样备份也不科学其实最简单的做法就是 insert into backname(要备份的字段) select 要备份的字段 from tablename

解决方案 »

  1.   

    --对数据库备
    backup database 数据库名 to disk='c:\名称.bak'--对表备份,如上,写个Job定时去备份!
      

  2.   

    --select * into backname  form tablename 
    if exists object_id("backname") then
    drop table backname
    select * into backname  from tablename
      

  3.   

    http://www.cnblogs.com/aierong/category/1957.html
      

  4.   

    备份表最好是导出,或者select * into 到另外一个数据库当中。
      

  5.   

    exex sp_umpdevice " 备份设备名" "物理地址"
    select 数据库名  database  into" 备份设备名"
      

  6.   

    SQL 不支持对表的直接备份。
    --你可以考虑把指定的表以文本文件的形式来进行备份/恢复if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)
    drop procedure File2Table
    go/*--实现数据导入/导出的存储过程可以实现导入/导出 整个数据库/指定表 到文本文件--引用邹建老大的--*//*--调用示例导出调用示例
    --导出指定表,这里指定导出表:地区资料 和 基本信息,文件名前缀为:zj
    exec file2table 'zj','','','d:\','xzkh_sa','地区资料,基本信息'
    --导出整个数据库到c:\docman目录下,无文件前缀
    exec file2table 'zj','','','d:\txt\','xzkh_sa'导入调用示例
    --导入指定表,这里指定导出表:地区资料 和 基本信息,文件名前缀为:zj
    exec file2table 'zj','','','c:\zj','xzkh_sa','地区资料,基本信息',0
    --导入整个数据库从c:\docman目录下,无文件前缀
    exec file2table 'zj','','','C:\docman\','xzkh_sa','',0
    --*/
    create procedure File2Table
    @servername varchar(200)--服务器名
    ,@username varchar(200)--用户名,如果用NT验证方式,则为空''
    ,@password varchar(200)--密码
    ,@path varchar(1000)--目录名+文件前缀,目录名必须以'\'结束,文件名自动用表名.txt
    ,@dbname varchar(500)--数据库名
    ,@tbname varchar(8000)=''--表名列表,如果不指定,则表示所有用户表
    ,@isout bit=1--1为导出(默认),0为导入
    as
    declare @sql varchar(8000),@sql1 varchar(8000)
    declare @tbstation int,@filestation int--初始化数据处理语句
    select @sql='bcp "'+@dbname+'..'
    ,@tbstation=len(@sql)+1
    ,@sql=@sql
    +case when @isout=1 then '" out' else '" in' end
    +' "'+@path
    ,@filestation=len(@sql)+1
    ,@sql=@sql
    +'.txt" /c'+' /S"'+@servername
    +case when isnull(@username,'')='' then '' 
    else '" /U"'+@username end
    +'" /P"'+isnull(@password,'')+'"'--数据导入/导出处理
    --定义数据处理的游标
    set @sql1='declare #tb cursor for select name from '
    +@dbname+'..sysobjects where xtype=''U'''
    +case when isnull(@tbname,'')='' then ''
    else ' and name in ('''+replace(@tbname,',',''',''')+''')' end
    exec(@sql1)
    open #tb
    fetch next from #tb into @tbname
    while @@fetch_status=0
    begin
    select @sql1=stuff(@sql,@tbstation,0,@tbname)
    ,@sql1=stuff(@sql1,@filestation+len(@tbname),0,@tbname)
    exec master..xp_cmdshell @sql1,no_output
    fetch next from #tb into @tbname
    end
    close #tb
    deallocate #tb
    go
      

  7.   

    复杂一点的就是建立一个新的数据文件,放在一个新的文件组中,将要单独备份的表全部放到这个文件组中备份的时候使用文件组备份
    backup database aa filegroup='要备份的文件组' to disk='备份文件名'但要注意的时,要恢复的话,必须在完全备份的基础上进行恢复