加上可以查些不符合sqlserver命名规则的表或列如:select * from [select]select [2343] from [^%&%]select [ ] from [%]这些特殊的表名和列名必须用[];来确定。

解决方案 »

  1.   

    我在同一个组下注册了两个服务器(其中一个在本地), 在每个服务器中建立了完全一样的数据库。当两个服务器都处于连接状态时,对任一个数据库进行查询select userid form user where username='aaa'都会报错,而select userid form [user] where username='aaa'不会。当把非本地服务器断开,对本地服务器的数据库进行查询select userid form user where username='aaa'时不会报错。当把本地服务器断开,对非本地服务器的数据库进行查询select userid form user where username='aaa'时报错。
      

  2.   

    一些保留字,带空格的表名,列名等需要放在[]中,如:
    select [first name] from [table]
      

  3.   

    所有的表名和字段名都可以加括号,
    对SQL的保留字或关键字如:select,insert... name,user之类的作为表名或字段名必须加括号。
      

  4.   

    to 马可:
    我已经说明白了:
    “当把非本地服务器断开,对本地服务器的数据库进行查询select userid form user where username='aaa'时不会报错。”我想做的是:
    对非本地服务器的数据库执行查询select userid form user where username='aaa'时不让其报错。”(不惜一切代价,除了重新建库, 开个玩笑)
      

  5.   

    你的非本地是sqlserver2K ?? 7.0吧这个和本不本地没有关系。