首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

没法将 DROP TABLE 用于 'xxx',因为 'xxx' 是 未知类型。请使用 DROP UNIQUE KEY CONSTRAINT

2012-08-17 
无法将 DROP TABLE 用于 xxx,因为 xxx 是 未知类型。请使用 DROP UNIQUE KEY CONSTRAINT。CREATE TABLE

无法将 DROP TABLE 用于 'xxx',因为 'xxx' 是 未知类型。请使用 DROP UNIQUE KEY CONSTRAINT。

CREATE TABLE xxx(
id char(36) Not null unique,
name nvarchar(100) not null,
accountId char(36),
favCount int not null,
primary key (id)
);

时候提示: 数据库中已存在名为 'xxx' 的对象。可是怎么也找不到该表 


use winesolution;
select * from dbo.WineTag

时候提示:对象名 'dbo.xxx' 无效。




drop table xxx

时候提示:无法将 DROP TABLE 用于 'xxx',因为 'xxx' 是 未知类型。请使用 DROP UNIQUE KEY CONSTRAINT。 



ALTER TABLE xxx
ADD FOREIGN KEY (accountId)
REFERENCES Account (id)
;

时候提示:无法更改 'xxx',因为它不是表。


有人遇见过这样问题,帮忙解决下 谢谢了 在线等


[解决办法]
换个名字吧。
已经存在一个叫这个名字的对象了。不一定是表。看提示似乎是一个约束。。。
[解决办法]

SQL code
--看看这个表是不是存在一个唯一约束,查出来找到他的名字,再把它删除,然后删除你的表select * from sysobjects where parent_obj in(select id from sysobjects where name='xxx')and xtype='UK'
[解决办法]
显然系统数据已经不一致,如果不太重要的话直接放弃这个库
dbcc checkdb('数据库名')查看问题所在,看是否可以修复

如果总数据不多的话,也可考虑建立新库,然后转移其他表数据过去,废除旧库

[解决办法]
SQL code
SELECT * FROM SYSOBJECTS WHERE name = 'xxx'
[解决办法]
探讨

SQL code

SELECT * FROM SYSOBJECTS WHERE name = 'xxx'


看看是否已经存在xxx,应该类型是UQ,是个唯一约束。
数据库是不予许表名和约束名相同的,所以你只能换个数据库名字试试。

热点排行