|
重点内容:我采用的是sql数据库,原来用的是access数据库,我把它改成了sql数据库后,有很多表,其他表都能使用,只有user 表,系统说错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
ODBC 驱动程序不支持所需的属性。
请问这是怎么回事,我应该怎么改? 当我用企业管理器打开表,想删除表中的某一行时,会出现“键列信息不足或不正确,更新影响到多行。”这里专家的回答会让您满意
这里有两个问题。
首先,USER是SQL中的关键字,所以在命名表的时候最好不要与之同名。如果实在需要同名,那么在访问时必须用方括号括起来以示区别(如select * from [user]),否则会导致语法错误。
其次,出现“键列信息不足...”的错误的确如楼上所说,是因为在该表中存在重复的记录,因此在企业管理器中试图删除时会报错。如果你只是想把重复的多余记录删除的话,需要打开查询分析器,然后输入下面的语句(根据需要改为你自己的表名和库名):
user MyDB --进入需要修改的数据库中
select distinct * into #tmp from [A] --先将数据存入一张临时表中,剔除重复项
truncate table [A] --然后清空原表
insert into [A] select * from #tmp --再将临时表内容插入表A
drop table #tmp --删除临时表
另外,在定义表结构时,最好能定义主键,以避免出现重复记录,而且在某些情况下可以加快查询速度。
|
免责声明:本网转载内容均注明出处,转载是出于传递更多信息之目的,并不代表我们立场。 |
|