因为我现在新添加的一个项目
然后新建了一个数据库A
但是现在要求这个项目里面的用户都是为数据库B
中的用户表User我是用ASP.NET开发的
如果每次要取用户信息和更新用户信息的时候
都用要不同的数据库连接语句进行操作的话很是麻烦所以我想有没有办法把B数据库的表像windows磁盘映射一样
把表user映射到A数据库中表名为MyUser这种方法有没有啊谢谢

解决方案 »

  1.   

    2005 可以使用 CREATE SYNONYM 创建同义词2000 没有这个, 但你可以创建视图, 只要表中有主键, 则操作视图与操作表是一样的
      

  2.   

    不同服务器数据库之间的数据操作--创建链接服务器 
    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 本地表 
    --插入本地表
    insert into 本地表 select * from openquery(ITSV,  'SELECT *  FROM 数据库.dbo.表名') 
    --更新本地表 
    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
      

  3.   

    另外, 也不一定要映射, 既然只是库不同, 你可以直接跨库访问就行了
    即使用三部分对象名称表述方式:
       库名.所有者名(一般都是dbo).对象名
      

  4.   

    SELECT     *
    FROM         OPENROWSET('SQLOLEDB ', 'YKTCPC-105\JERRYSQL2000'; 'sa'; '123456 ', YS2008.dbo.YY_user) AS derivedtbl_1
    我在我的SQL2005新建一视图上面的语句提示说我的
    Ad Hoc Distributed Queries 说没有开然后我在网上找到
    EXEC sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
    GO
    RECONFIGURE;
    GO执行时提示
    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
    已将配置选项 'show advanced options' 从 1 改为 1。请运行 RECONFIGURE 语句以安装。
    服务器: 消息 15123,级别 16,状态 1,过程 sp_configure,行 78
    配置选项 'Ad Hoc Distributed Queries' 不存在,也可能是高级选项。
     
    有效的配置选项为:怎么办
      

  5.   

    是同服,就  库名.所有者.[表名或视图名],不是同一个服务器,就键连接服务器,然后才能
    select * from .....
      

  6.   

    --创建链接服务器 
    exec sp_addlinkedserver   'ITSV', '', 'SQLOLEDB ', 'YKTCPC - 105 \\ JERRYSQL2000' 
    exec sp_addlinkedsrvlogin  'ITSV ', 'false ',null, 'sa ', '123456' --查询示例 
    select * from ITSV.YS2008.dbo.YY_user --导入示例 
    select * into [User] from ITSV.YS2008.dbo.YY_user 我在SQL2005中执行提示:
    消息 7202,级别 11,状态 2,第 6 行
    在 sysservers 中找不到服务器 'ITSV'。请执行 sp_addlinkedserver 将该服务器添加到 sysservers。上面的ITSV是什么意思PS:我的是SQL2005 要链接别一台机SQL2000的表
      

  7.   

    sp_addlinkedserver 通过它配置一个连接服务器,ITSV就是一个名字,以后就可以通过它来访问对象了。
      

  8.   

    那怎么提示错误:
    消息 7202,级别 11,状态 2,第 6 行 
    在 sysservers 中找不到服务器 'ITSV'。请执行 sp_addlinkedserver 将该服务器添加到 sysservers。 
      

  9.   

    exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '想连接的服务器ip' 
    exec sp_addlinkedsrvlogin  'ITSV ', 'false ',null, '想连接的服务器的用户名,如:sa', '密码 ' 
    先键完这个,itsv这个连接名才能用,itsv名字创可以自己改
      

  10.   

    可以用DTS做在2005里面用SSIS做  定时更新
      

  11.   

    现在出错

    链接服务器"ITSV"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "登录超时已过期"。
    链接服务器"ITSV"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "建立到服务器的连接时发生错误。连接到 SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败。"。
    消息 65535,级别 16,状态 1,第 0 行
    SQL 网络接口: 定位指定的 Server/Instance 时出错 [xFFFFFFFF]. 
    在SQL2000里面要设置什么东西
    谢谢