【问题标题】:MS SQL Error "Invalid object name" on table I just created我刚刚创建的表上的 MS SQL 错误“无效的对象名称”
【发布时间】:2018-03-28 19:28:51
【问题描述】:

我得到一个

无效的对象名称

尝试将记录插入刚刚创建的表时出错。

我正在使用Microsoft SQL 2000。我正在超级用户帐户上测试所有这些,因此没有权限问题。

创建表:

CREATE TABLE [table_test2] (
[User 4] [varchar] (10)  NULL ,  
[User 3] [varchar] (10)  NULL ,  
[User 2] [varchar] (10)  NULL ,  
[User 1] [varchar] (10)  NULL ,  
[Spouse] [varchar] (10)  NULL ,  
[Sensitivity] [varchar] (10)  NULL ,  
[Referred By] [varchar] (10)  NULL ,  
[Profession] [varchar] (10)  NULL ,  
[Private] [varchar] (10)  NULL ,  
[Priority] [varchar] (10)  NULL ,  
[Other Address PO Box] [varchar] (10)  NULL ,  
[Organizational ID Number] [varchar] (10)  NULL ,  
[Office Location] [varchar] (10)  NULL ,  
[Notes] [varchar] (133)  NULL ,  
[Mileage] [varchar] (10)  NULL ,  
[Manager's Name] [varchar] (10)  NULL ,  
[Location] [varchar] (10)  NULL ,  
[Language] [varchar] (10)  NULL ,  
[Keywords] [varchar] (10)  NULL ,  
[Internet Free Busy] [varchar] (10)  NULL ,  
[Initials] [varchar] (10)  NULL ,  
[Home Address PO Box] [varchar] (10)  NULL ,  
[Hobby] [varchar] (10)  NULL ,  
[Government ID Number] [varchar] (10)  NULL ,  
[Gender] [varchar] (16)  NULL ,  
[E-mail 3 Display Name] [varchar] (10)  NULL ,  
[E-mail 3 Type] [varchar] (10)  NULL ,  
[E-mail 3 Address] [varchar] (10)  NULL ,  
[E-mail 2 Display Name] [varchar] (10)  NULL ,  
[E-mail 2 Type] [varchar] (10)  NULL ,  
[E-mail 2 Address] [varchar] (10)  NULL ,  
[E-mail Display Name] [varchar] (38)  NULL ,  
[E-mail Type] [varchar] (10)  NULL ,  
[E-mail Address] [varchar] (38)  NULL ,  
[Directory Server] [varchar] (10)  NULL ,  
[Children] [varchar] (10)  NULL ,  
[Categories] [varchar] (10)  NULL ,  
[Business Address PO Box] [varchar] (10)  NULL ,  
[Birthday] [varchar] (10)  NULL ,  
[Billing Information] [varchar] (10)  NULL ,  
[Assistant's Name] [varchar] (10)  NULL ,  
[Anniversary] [varchar] (10)  NULL ,  
[Account] [varchar] (10)  NULL ,  
[Telex] [varchar] (10)  NULL ,  
[TTY/TDD Phone] [varchar] (10)  NULL ,  
[Radio Phone] [varchar] (10)  NULL ,  
[Primary Phone] [varchar] (10)  NULL ,  
[Pager] [varchar] (10)  NULL ,  
[Other Phone] [varchar] (10)  NULL ,  
[Other Fax] [varchar] (10)  NULL ,  
[Mobile Phone] [varchar] (19)  NULL ,  
[ISDN] [varchar] (10)  NULL ,  
[Home Phone 2] [varchar] (10)  NULL ,  
[Home Phone] [varchar] (10)  NULL ,  
[Home Fax] [varchar] (10)  NULL ,  
[Company Main Phone] [varchar] (10)  NULL ,  
[Car Phone] [varchar] (10)  NULL ,  
[Callback] [varchar] (10)  NULL ,  
[Business Phone 2] [varchar] (10)  NULL ,  
[Business Phone] [varchar] (19)  NULL ,  
[Business Fax] [varchar] (19)  NULL ,  
[Assistant's Phone] [varchar] (10)  NULL ,  
[Other Country/Region] [varchar] (10)  NULL ,  
[Other Postal Code] [varchar] (10)  NULL ,  
[Other State] [varchar] (10)  NULL ,  
[Other City] [varchar] (10)  NULL ,  
[Other Street 3] [varchar] (10)  NULL ,  
[Other Street 2] [varchar] (10)  NULL ,  
[Other Street] [varchar] (10)  NULL ,  
[Home Country/Region] [varchar] (10)  NULL ,  
[Home Postal Code] [varchar] (10)  NULL ,  
[Home State] [varchar] (10)  NULL ,  
[Home City] [varchar] (10)  NULL ,  
[Home Street 3] [varchar] (10)  NULL ,  
[Home Street 2] [varchar] (10)  NULL ,  
[Home Street] [varchar] (10)  NULL ,  
[Business Country/Region] [varchar] (29)  NULL ,  
[Business Postal Code] [varchar] (10)  NULL ,  
[Business State] [varchar] (10)  NULL ,  
[Business City] [varchar] (17)  NULL ,  
[Business Street 3] [varchar] (10)  NULL ,  
[Business Street 2] [varchar] (10)  NULL ,  
[Business Street] [varchar] (30)  NULL ,  
[Job Title] [varchar] (10)  NULL ,  
[Department] [varchar] (10)  NULL ,  
[Company] [varchar] (34)  NULL ,  
[Suffix] [varchar] (10)  NULL ,  
[Last Name] [varchar] (16)  NULL ,  
[Middle Name] [varchar] (10)  NULL ,  
[First Name] [varchar] (10)  NULL ,  
[Title] [varchar] (10)  NULL 
)

创建表没有错误!!

我可以从表格中选择:

select * from table_test2  

但是当我尝试插入时,我收到一个错误,指出对象不受欢迎:

insert into table_test2
('User 4', 'User 3', 'User 2')
values
('a','b','c')

返回错误:

服务器:消息 208,级别 16,状态 3,第 1 行无效的对象名称 'table_test'。

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    虽然他们没有相同的名字。您创建的那个有一个2 后缀。

    CREATE TABLE [table_test2]
    

    和

    select * from table_test 
    

    如果您确定您的选择/插入语句没有出现类似错误,我建议您运行以下命令。

    select * from 
    sysobjects /*For SQL Server 2000*/
    where name like 'table_test%'
    

    此外,您的 insert 声明看起来很狡猾。我认为您需要方括号或双引号而不是单引号。我不确定这是否会产生您所看到的错误。

    insert into table_test
    ([User 4], [User 3], [User 2])
    values
    ('a','b','c')
    

    【讨论】:

    • 抱歉,复制粘贴出错。表名匹配,我仍然得到错误。该表位于 sysobject 表中。哪个是 sysobjects,而不是 sys.objects。
    • @jsjoy - 好点 SQL2000 使用 sysobjects。方括号呢?你绝对不能在那里使用单引号。
    • 是的,就是这样。我一直关注它说找不到表的事实。愚蠢的语法错误。谢谢!
    【解决方案2】:

    您确定您使用的是正确的数据库吗?尝试在每个之前使用USE 语句,或者在表前加上数据库名称,例如:

    CREATE TABLE mydatabase..table_name  ...
    INSERT INTO mydatabase..table_name ...
    

    可以使用“..”前缀,因此您无需指定架构(例如dbo)。

    希望对您有所帮助。

    【讨论】:

      【解决方案3】:

      语法错误。需要用括号而不是引号将插入语句列列表括起来:

      这将是正确的语法:

       insert into table_test2
          ([User 4], [User 3], [User 2])
          values
          ('a','b','c')
      

      【讨论】:

        【解决方案4】:

        在您的 CREATE TABLE 语句中,表的名称是 table_test2

        【讨论】:

        • 对不起,我更正了帖子。当我尝试时,表名是相同的。
        猜你喜欢
        • 2016-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-17
        相关资源
        最近更新 更多