我想  备份sql数据库A里面的一个表tab1   到     另外一台电脑的SQL数据库B  请问怎么做,有两种前提 1, 这两台电脑不能联网、2 是局域网
谢谢高手。很急,

解决方案 »

  1.   

    /*--备份指定表到另一数据库 备份指定数据库中的指定表列表到一个新的数据库--邹建 2003.12--*//*--调用示例
    --备份数据当前数据库的所有内容
    exec p_backupdatabase

    --备份当前数据库的指定表
    exec p_backupdatabase @tblist='tb,tb1,tb2'
    --*/if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_BackupDataBase]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[p_BackupDataBase]
    GOCREATE PROCEDURE p_BackupDataBase
    @s_dbname sysname='', --要备份的数据库名,如果不指定,则备份当前数据库
    @d_dbname sysname='', --备份生成的数据库名,如果不指定,则为:@s_dbname+'_bak'
    @tblist varchar(8000)='' --要备份的表名列表,如果不指定,则表示所有用户表
    AS
    declare @sql varchar(8000),@err_msg varchar(1000)--参数检测
    if isnull(@s_dbname,'')='' set @s_dbname=db_name()
    if isnull(@d_dbname,'')='' set @d_dbname=@s_dbname+'_bak'
    if exists(select 1 from master..sysdatabases where name=@d_dbname)
    begin
    set @err_msg='备份的数据库 ['+@d_dbname+'] 已经存在!'
    goto lb_exit
    end
    if not exists(select 1 from master..sysdatabases where name=@s_dbname)
    begin
    set @err_msg='要备份的数据库 ['+@d_dbname+'] 不存在!'
    goto lb_exit
    end--创建备份的数据库
    set @sql='create database ['+@d_dbname+']'
    exec(@sql)--备份表
    declare @tbname sysname
    set @sql='declare tb cursor for
    select name from ['+@s_dbname+']..sysobjects 
    where status>0 and xtype=''U'''
    +case isnull(@tblist,'') when '' then '' 
    else ' and name in('''+replace(@tblist,',',''',''')+''')' end
    exec(@sql)
    open tb
    fetch next from tb into @tbname
    while @@fetch_status=0
    begin
    set @sql='select * into ['+@d_dbname+']..['+@tbname
    +'] from ['+@s_dbname+']..['+@tbname+']'
    exec(@sql)
    fetch next from tb into @tbname
    end
    close tb
    deallocate tblb_exit:
    if @err_msg<>'' raiserror(@err_msg,1,16)
    go
      

  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.   

    --想問下,局域网 不能連網是什麼意思?
    --不能互相通信?
    --不同服务器数据库之间的数据操作--创建链接服务器 
    exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 
    exec sp_addlinkedsrvlogin  'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 
    select * from ITSV.数据库名.dbo.表名 --导入示例 
    select * into 表 from ITSV.数据库名.dbo.表名 --以后不再使用时删除链接服务器 
    exec sp_dropserver  'ITSV ', 'droplogins ' --连接远程/局域网数据(openrowset/openquery/opendatasource) 
    --1、openrowset --查询示例 
    select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) --生成本地表 
    select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) --把本地表导入远程表 
    insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 
    select *from 本地表 --更新本地表 
    update b 
    set b.列A=a.列A 
     from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b 
    on a.column1=b.column1 --openquery用法需要创建一个连接 --首先创建一个连接创建链接服务器 
    exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 
    --查询 
    select * 
    FROM openquery(ITSV,  'SELECT *  FROM 数据库.dbo.表名 ') 
    --把本地表导入远程表 
    insert openquery(ITSV,  'SELECT *  FROM 数据库.dbo.表名 ') 
    select * from 本地表 
    --更新本地表 
    update b 
    set b.列B=a.列B 
    FROM openquery(ITSV,  'SELECT * FROM 数据库.dbo.表名 ') as a  
    inner join 本地表 b on a.列A=b.列A --3、opendatasource/openrowset 
    SELECT   * 
    FROM   opendatasource( 'SQLOLEDB ',  'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta 
    --把本地表导入远程表 
      

  4.   

    1可以連網 參考1,3樓的
    2不能連網 找U盤,把MDF,LDF拷貝過去,附加為不同名稱的數據庫,然後跨庫操作
      

  5.   

    谢谢各位。是这样的,我现在有一个表格 table1:                      另外还有一个表 table_type
                                      商品id         类别id 
                                        1               0001
                                        2               0002     类别id是table_type的主键
                                        3               0002
    我现在的table_type分类表重新做,所以每个商品所属的类别id也要变,我这个表是在本地设计的。想在服务器上更改。 有没有什么简单的方法就像复制粘贴一样到服务器  把本地的table_type表复制到 服务器 新建表table_type_bak