select * from OPENDATASOURCE(链接串).库名.dbo.表名,   如果库名带点比如:  status1.0   怎么写?

解决方案 »

  1.   

    2005里
    select * from OPENDATASOURCE(链接串).[库名].[dbo].[表名]  直接写可以但是2000里这么写会报错.....
      

  2.   


    不行哇...
    OLE DB 提供程序 'SQLOLEDB' 指出该对象中没有任何列。
    报这个错...
      

  3.   


    select *  from
    OPENDATASOURCE('SQLOLEDB','Data Source=.;User ID=sa;Password=sa').[status1.0].[dbo].[table]
    这句,在2005里没有问题.在2000里报
    OLE DB 提供程序 'SQLOLEDB' 指出该对象中没有任何列。 
      

  4.   

    本帖最后由 roy_88 于 2010-01-26 14:05:19 编辑
      

  5.   

    在上面已經有答案了,[status1.0]--轉義符
    或用"status1.0"
    以是連接是讓你參照其它實現方法
      

  6.   

    select * from openrowset('SQLOLEDB','172.16.113.30';'sa';'sa',"status1.0"."dbo"."table")
    或者
    select * from openrowset('SQLOLEDB','172.16.113.30';'sa';'sa',[status1.0].[dbo].[table])
    2000里全都报错......
    2005里全都正常......
      

  7.   

    在自己电脑上别OPENDATASOURCE,
    OPEROWSETSELECT a.*
    FROM OPENROWSET('SQLOLEDB','UPSOFT01';'sa';'密码',
       'SELECT * FROM [STATUS.01].dbo.客房类型') AS a
    GO测试通过,汗,你怎么弄的
      

  8.   

    汗...不是这样写的....楼上写的没法加变量的条件了....在后边加where的话 就扫描2遍了....
    是这样的
    select * from openrowset('SQLOLEDB','172.16.113.30';'sa';'sa',"status1.0"."dbo"."table") where 条件变量
    或者 
    select * from openrowset('SQLOLEDB','172.16.113.30';'sa';'sa',[status1.0].[dbo].[table]) where 条件变量
      

  9.   

    http://support.microsoft.com/kb/270119/zh-cn
    http://www.edge365.com/post/160.html
    参考下,好像没办法了,只不过查询的时候如果有这样的提示,可以用SET FMTONLY OFF;一起来查询