社区
MS-SQL Server
帖子详情
当我在sql server 2000中删除一行记录时,系统报错:键列信息不足或不正确。更新影响到过多的行。请问这是为什么?
luoxiang2000
2002-03-23 04:42:56
thanks!
...全文
561
11
打赏
收藏
当我在sql server 2000中删除一行记录时,系统报错:键列信息不足或不正确。更新影响到过多的行。请问这是为什么?
thanks!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
北极海hein
2002-03-25
打赏
举报
回复
简单一点做法就系你的表中新加一个自动编号字段,然后删除相同的记录,你手工删除也行,用delete语句也行。
warning
2002-03-25
打赏
举报
回复
truncate table和delete table作用一样,都是从表中删除数据,不过写日志的方式不同。DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
bigysw
2002-03-25
打赏
举报
回复
哦,说错了,default 约束不是外部关系!
bigysw
2002-03-25
打赏
举报
回复
truncate 是把表的数据全部清空,并不影响原表的约束等外部关系!
drop 则是把表整个删除,连表都不剩下,虽然随后我又用select * into table1生成了原表,但可能会影响原来已经存在的外部关系!
CSDNM(CSDN经理(信就不假) 用的那个东西不是临时表,只是名字有点像,它是数据库中实际存在的一个表,后来删除了。没什么影响。
估计你所用的这个表也没有什么外部关系,所以两个方法都行!
luoxiang2000
2002-03-25
打赏
举报
回复
sql server中可以设置自动编号的字段吗?怎么设置?
luoxiang2000
2002-03-23
打赏
举报
回复
他的办法和你的好像没有什么不同?!他不也是临时建一个表temptb
吗?truncate与drop又有什么不同?
bigysw
2002-03-23
打赏
举报
回复
distinct 是选择纪录中不相同的唯一的纪录,Blob等大容量指针类型的字段除外!
#表示临时表,在数据库系统中不长期保存,用过就算。
如 CSDNM(CSDN经理(信就不假) 所说,临时表有点危险,用它的办法保险!
luoxiang2000
2002-03-23
打赏
举报
回复
bigysw(大花脸):
麻烦详细解释一下你给的那一个sql语句!比如,distinct是什么意思?#tb
表前面加一个#号是什么表???
谢谢!
CSDNM
2002-03-23
打赏
举报
回复
原因,如 bigysw(大花脸) 所说。
解决方法:bigysw(大花脸)的方法可以,但用临时表太危险,而且容易丢掉表里的DEFAULT等约束,最好这样:
select distinct * into temptb from table1
go
truncate table table1
go
insert table1
select * from temptb
go
drop table temptb
go
xiaolun
2002-03-23
打赏
举报
回复
如果你直接运行SQL语句删除行,应该不会出这样的错吧!如果你实在某一个
工具里删除,如DB explorer...,可能是你的表没有主键,SQL Server无法定
位你想要删除的行,如果你的表没有主键的话,表中有可能存在完全相同的
行(所有的列值都相同),这时你是不可能删除其中某一行的,只能用SQL语
句删除所有的行!
bigysw
2002-03-23
打赏
举报
回复
老问题,你的表中有完全相同的两条或者多条纪录。
你的表设计有问题,应该设置关键字。
目前的处理办法:
select distinct * into #tb from table1
drop table table1
select * into table1 from #tb
运行一下上面的语句,OK!
然后修改表结构,加上关键字
sql
server
“
键列
信息
不足
或不
正确
。
更新
影响
到多
行
”
环境:windows
server
2003 sp2,
sql
server
2000
,用于管理固定资产的软件。故障现象:要同
时
增加两台思科交换机的固定资产
信息
,由于型号什么都一致,只是序列号不一样。于是就想做完一台后,能否直接复制一条单据过来改一下不一致的地方就
行
了。但是前台无法实现。本着偷懒和学习的态度,杀到后台,直接打开数据库操作。去了主键限制,用下面语...
SQL
“
键列
信息
不足
或不
正确
,
更新
影响
到多
行
SQL
“
键列
信息
不足
或不
正确
,
更新
影响
到多
行
用企业管理器打开表,想
删除
表
中
的某
一
行
时
,会出现“
键列
信息
不足
或不
正确
,
更新
影响
到多
行
。” 出现“
键列
信息
不足
...”的错误,是因为在该表
中
存在重复的
记录
,因此在企业管理器
中
试图
删除
时
会
报错
。如果你只是想把重复的多余
记录
删除
的话,需要打开查询分析器,然后输入下面的语句(根据需要改为你自己的表名和库名): use MyDB
SQL
Server
远程备份
报错
:无法打开备份设备
SQL
Server
远程备份
报错
: 消息 3201,级别 16,状态 1,第 1
行
无法打开备份设备 '\\172.16.4.10\backup01\11.bak'。出现操作
系统
错误 1326(用户名或密码不
正确
。)。 消息 3013,级别 16,状态 1,第 1
行
BACKUP DATABASE 正在异常终止。 解决方案: 在目标服务器建立一个账号。 这个账号用于远程备份访问共享用。 开启xp_cmdshell: sp_configure 'show advanced opt.
触发器引起“
键列
信息
不足
或不
正确
。
更新
影响
到多
行
” 解决办法
经常在网上有人看到问这样的问题,且回复的人多数答不到关键上 。在
SQL
SERVER
里为例,其实只需要在触发器的开始加上一句话就
行
了。create trigger 触发器名字 on 表名for insert as//把下面这句话写上就
行
了SET NOCOUNT ON
SQL
Server
数据导入
报错
的问题
今天使用
sql
server
的数据导入的功能,将txt文本的数据导入到数据库表里面,可是遇到了如下
报错
: 提示关于文本截断的
报错
,开始还以为我的目标表的字段长度不够长,即使我将字段长度设置为MAX也一样会报同样的错误,经过好一番折腾才发现,问题原来出现在这里: 在选择数据源的界面有个高级选项,里面有个输出列宽度默认值是50,如果导入的数据有的列里面的值长度超过50的话就会
报错
MS-SQL Server
34,874
社区成员
254,640
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章