怎么备份数据库中的一个或几个表?
又怎么进行恢复?
请教这两个操作的SQL语句怎么写?

解决方案 »

  1.   

    不行,只能备份整个数据库,可以导出导入到ACCESS实现备份恢复。
      

  2.   

    1.在查询分析器里可以导出文件
    2.用BCP命令导出文件
    如:
    bcp "Northwind.Jane Doe.Jane's Orders" out "Jane's Orders.txt" -c -q -U"Jane Doe" -P"go dba"
      

  3.   

    bcp 可以实现数据的导入导出。
    EXEC master..xp_cmdshell 'bcp test.dbo.P_Aspect in c:\temp1.txt -c -q -S"servername" -U"sa" -P""'
    //导入 EXEC master..xp_cmdshell 'bcp test.dbo.P_Aspect out c:\temp1.txt -c -q -S"servername" -U"sa" -P""'
    //导出
      

  4.   

    http://expert.csdn.net/Expert/topic/2341/2341997.xml?temp=.2739221
    SQL语句导入导出大全
    http://expert.csdn.net/Expert/topic/2461/2461899.xml?temp=.39555
    交流--导入/导出Excel
      

  5.   

    bcp备份就行了./*--实现数据导入/导出的存储过程 可以实现导入/导出 整个数据库/指定表 到文本文件邹建 2003.07-----------------*//*--调用示例
    导出调用示例
    --导出指定表,这里指定导出表:地区资料 和 基本信息,文件名前缀为: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
    --*/if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)
    drop procedure File2Table
    gocreate 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
      

  6.   

    也可以备份成dbf或excel文件:参考我的贴子:导入/导出Excel
    http://expert.csdn.net/Expert/topic/2461/2461899.xml?temp=.5647547导入/导出dBase
    http://expert.csdn.net/Expert/topic/2495/2495545.xml?temp=.6065637