我写了一个数据库系统,作业每个月调度一次,创建一些表的存档表,例如有一张表是“SysOpLog”,那么我就需要每月创建下几个月的存档表,如“SysOpLog200402”、“SysOpLog200403”等。
在创存档表的存储过程当中,创一个表之前会首先判断表是否已经存在,如果存在就不创建了。
于是就发现了上面的问题。

解决方案 »

  1.   

    不可能,除非你的数据库是大小写敏感的.
    1.你看看表名的大小写是否一致
    2.你试试下面的语句:
    select * from sysobjects where id = object_id('dbo.objects_name') and sysstat & 0xf = 4
      

  2.   

    是你的用户名问题吧。
    如果你的sa用户创建的表ProductInfo,是dbo.ProductInfo
    而你现在如以a登陆,仍然可以创建表a.ProductInfo
      

  3.   

    select * from sysobjects where xtype='u' and status>0 and name='ProductInfo'
    这句语句很可能会返回多条记录,因为不同用户可以在同一个库中创建相同的对象。select * from sysobjects where id = object_id('dbo.t')
    你把对象打全,所有着.对象名