未更新任何行 未提交行 中的数据
关键词:未更新任何行 未提交 数据库未更新任何行
其中的症状二是错误提示,原因和解决办法也在其中。
文章以下部分内容为总结,主要介绍原因和解决办法:
现象:
No row was updated.
The data in row X was not committed.
Error Source: Microsoft.VisualStudio.DataTools.
Error Message: The row value(s) updated or deleted either do not make the row unique or they alter multiple rows(N rows).
Correct the errors and retry or press ESC to cancel the change(s).
翻译如下:
未更新任何行。
未提交行 1 中的数据。
错误源: .Net SqlClient Data Provider。
错误信息: 将截断字符串或二进制数据。
语句已终止。
未提交行 1 中的数据。
错误源: .Net SqlClient Data Provider。
错误信息: 将截断字符串或二进制数据。
语句已终止。
表层原因:
It stated the issue could occure from one of the following conditions:
- 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.
翻译如下:
- 表中包含文本或ntext数据类型的一个或多个的列。
- 这些列中的一个的值包含下列字符:
- 百分号 (%)
- 下划线 (_)
- 左的方括号 ([])
- 表没有主键。
深层原因:
This issue occurs because SQL Server Management Studio generates an incorrect SQL statement for the update operation. When the table does not contain a primary key, the values of all columns are used to identify the row to update. When SQL Server Management Studio constructs this statement, the incorrect comparison operator (=) is used to compare columns of thetext, ntext, or image data types.
由于 SQL Server management Studio 会生成不正确的 SQL 语句,以执行更新操作,则会出现此问题。如果表没有主键,所有列的值用于标识要更新的行。当 SQL Server 管理 Studio 构造此语句时,用于比较text、 ntext或image数据类型的列不正确的比较运算符 (=)。
引用:
1.http://joshhighland.com/blog/2010/02/03/sql-server-2008-fixed-data-has-changed-since-the-results-pane-was-last-retrieved/
2.http://support.microsoft.com/kb/925719
转载请注明:数据分析 » 未更新任何行 未提交行 中的数据