在 SQL2005 Management Studio 中不能直接更改表中数据行的内容

isprowler 2007-04-02 04:04:27
在SQL2005 Management Studio 中无论是新表还是旧表,直接打开编辑后都没能保存
提示错误如下:

------------------------------------------------------
未更新任何行
未提交 xxx 中的数据 //xxx=行号
错误源: Microsoft.VisualStudio.DataTools
错误信息:自从上次检索数据后,更新的行已被更改或删除
------------------------------------------------------

我新建一个没人用的表直接新增记录也会出现上面的提示,不知是何原因.
请各位大侠赐教,谢谢!
...全文
1375 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lizhonglin 2010-09-29
  • 打赏
  • 举报
回复
主键问题
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
lz要干嘛?
blueice008 2008-04-23
  • 打赏
  • 举报
回复
装了vs 2005 sp2 也不行呀.
rubiki 2007-08-23
  • 打赏
  • 举报
回复
This issue occurs if the following conditions are true:
The table contains one or more columns of the text or ntext data type.
The value of one of these columns contains the following characters:
Percent sign (%)
Underscore (_)
Left bracket ([)
The table does not contain a primary key.
Note This issue also occurs when you try to use Table Designer in Microsoft Visual Studio 2005 to update a table that is in a SQL Server 2005 database.



2005 sp2 中已经没有上面的问题了
rubiki 2007-08-11
  • 打赏
  • 举报
回复
一般都是因为没有主键
zhuaiman 2007-07-19
  • 打赏
  • 举报
回复
编辑好后,请点一下 “感叹号” 再update一下
GoldShield 2007-07-18
  • 打赏
  • 举报
回复
删了重装
hb_gx 2007-07-12
  • 打赏
  • 举报
回复
可以违反了某些约束你没发现

用SQL语句试试看
z5wjz 2007-07-12
  • 打赏
  • 举报
回复
用脚本方式插入记录也不行么
liwu 2007-07-11
  • 打赏
  • 举报
回复
症状
考虑以下方案。 尝试使用 SQLServerManagementStudio 无法更新 Microsoft SQL Server 2005 中的表。 在对象资源管理器, 您右键单击, 表的名称, 然后您单击 打开表 。 更新表的行。 在此方案, 可能会收到以下 Microsoft SQL Server Management Studio 对话框中意外错误信息之一:
错误 1
数据已更改因为最后检索结果窗格。 是否要立即保存更改 ?
(乐观并发控制错误)
单击是以提交到数据库仍将更改。
单击 " 否 " 可放弃更改并为此行检索当前数据。
单击 " 取消 " 以继续编辑。
注意 如果 是 在此错误消息对话框中, 单击正确更新行。
错误 2
没有行被更新。
数据行 X 中已不提交。
错误源: microsoft.VisualStudio.DataTools。
错误消息: 不要行值更新或删除任一行进行唯一或他们更改多行 ( N 行)。
更正错误并重试或按 Esc 可取消更改。
注意 如果您收到此消息对话框, 您无法更新行。

如果下列条件为真会发生此问题:• 表包含一个或多列是 text 或 ntext 数据类型。
• 之一的这些列值包含下列字符:• 百分号 (%)
• 下划线 (_)
• 左括号 ([)

• 表不包含主键。
注意 当试图 Microsoft Visual Studio 2005 中使用表设计器无法更新表是 SQL Server 2005 数据库中也会发生此问题。
回到顶端

原因
出现此问题的是因为 SQL Server Management Studio 生成 SQL 语句为更新操作正确。 当表不包含主键, 对所有列值用于标识要更新行。 当 SQLServerManagementStudio 构造该语句, 正确比较运算符 (=) 用于比较 文本 、, ntext 或 image 数据类型列。
回到顶端

替代方法
要解决此问题, SQLServerManagementStudio 中创建新查询窗口。 然后, 运行 SQL UPDATE 语句来更新表中行。

注意 如果收到首错误消息 " 症状 " 部分, 中提到来更新行 是 单击。
Zack999 2007-04-02
  • 打赏
  • 举报
回复
好像要再运行一下
isprowler 2007-04-02
  • 打赏
  • 举报
回复
编辑完之后,就报上面说的错误了
neo_aksa 2007-04-02
  • 打赏
  • 举报
回复
可以的,编辑万一行后,按下,转到下一行就自动保存了

11,848

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧