问一个很菜鸟的问题,我在数据库上建立表格的时候,例如运行
CREATE TABLE [kmms.tb_column_mapping] (
        [cms_id] [int]  NOT NULL,
[inf_id] [int]  NOT NULL
CONSTRAINT [p_tb_column_mapping] PRIMARY KEY  CLUSTERED 
(
[cms_id],
[inf_id]
)  ON [PRIMARY] 
) ON [PRIMARY]
GO
运行成功,但在数据里显示新建立的表名称为dbo.kmms.tb_column_mapping
再执行select * from kmms.tb_column_mapping 或者select * from dbo.kmms.tb_column_mapping 都报错服务器: 消息 208,级别 16,状态 1,行 1
对象名 'dbo.kmms.tb_column_mapping' 无效。
服务器: 消息 208,级别 16,状态 1,行 1
对象名 'kmms.tb_column_mapping' 无效。
我用的数据库是SQL Server2000,不知道这个问题怎么解决,请各位大侠帮我指点迷津

解决方案 »

  1.   

    表名最好不要加.
    kmms被SQL認為是所有者或架構
      

  2.   

    select * from dbo.[kmms.tb_column_mapping]
      

  3.   

    在建表时候,以下要使用[]括起来:
    1.关键字:比如user ->[user]
    2.有空格的时候:比如:order detail->[order detail]
    3.就是楼主这种情况有使用到"."的,
    dbo.kmms.tb_column_mapping 你要是没有加括号的话.相当于dbo是数据库 ,kmms是所有者,tb_column_mapping 才是表名
    4.高手补充.
      

  4.   

    谢谢各位,问题已解决,所有者和表明都加[]就可以了
    CREATE TABLE [kmms].[tb_column_mapping] (
            [cms_id] [int]  NOT NULL,
    [inf_id] [int]  NOT NULL
    CONSTRAINT [p_tb_column_mapping] PRIMARY KEY  CLUSTERED 
    (
    [cms_id],
    [inf_id]
    )  ON [PRIMARY] 
    ) ON [PRIMARY]
    GO