我现在用SA用户登陆,服务器,我想拷贝服务器的一个数据库到本地来,然后把拷贝下来的数据库加入到本地的SQL服务器中,怎样做啦.

解决方案 »

  1.   

    不同服务器数据库之间的数据操作 
    --创建链接服务器 
    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 
    --把本地表导入远程表 
    insert opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ').数据库.dbo.表名 select * from
      

  2.   

    1.SQL Server 2005 , copy database.
    2.SQL Server 2000 , 备份还原.
      

  3.   

    楼主是想把服务器上的数据库文件拷贝到本地来是吧?1.查询分析器登陆到服务器,backup数据库文件到服务器磁盘上
    2.在本地创建个可写的共享文件夹,在服务器上映射这个文件夹
    3.用xp_cmdshell把服务器上的文件拷到你的文件夹下理论上是这样,没试过。
    xp_cmdshell 'copy 盘符\路径\文件 映射盘符下'