Sql Server 2000 系统下登录名和数据库名称相同,而且是该用户是db_owner,导致无法删除该用户;
个人推测原因是某些存储过程或视图使用了 [数据库名].[对象] 的方式引用对象,导致被系统认为是 [登录名].[对象] 的引用;原帖:http://community.csdn.net/Expert/topic/5642/5642771.xml如果谁能解决直接删除 Sql Server 2000 系统下的同名用户,另外再送200分……

解决方案 »

  1.   

    邹建都回答了2000的也需要先修改所有者,用游标使用sp_changeobjectowner存储过程修改
      

  2.   

    如果只是表可以一个语句exec sp_msforeachtable "sp_changeobjectowner '?','dbo'"
      

  3.   

    如果存在对象的所有者是你要删除的用户,则无法删除这个数据库用户。必须手工或用sp_changeobjectowner将这些对象的所有者改为其他用户,才可以删除你指定的用户。
      

  4.   

    明白了~  我自己想错了,也找到原因了:的确是所有者的问题,所有有问题的数据库都是先建了登录名之后由程序生成的,在CREATE时没有带上[dbo]限制,就被系统认成登录名所有了(因为用的该登录名登录),所以不是同步同名的问题,而是这类系统本身的设计缺陷导致的,迁移到2005后,原来的某些引用路径被改变了(加上了架构),就导致系统错误……谢谢楼上诸位