gpt4 book ai didi

sql-server - 为什么我无法在 SSMS 中删除(编辑)具有 xml 值的行?

转载 作者:行者123 更新时间:2023-12-02 08:56:34 25 4
gpt4 key购买 nike

在 SSMS 2008 R2 中我执行:

create table aaa(col1 xml);
go
insert into aaa (col1)
values('<ccc>ddd</ccc>')
go 2

然后,使用“编辑前 200 行”选项在 SSMS 中打开表(在对象资源管理器中右键单击表),选择一行,按删除(键盘按钮),
单击"is"确认并收到错误 [1]

为什么我无法删除或编辑行?

[1]

---------------------------
Microsoft SQL Server Management Studio
---------------------------
No rows were deleted.

A problem occurred attempting to delete row 1.
Error Source: Microsoft.SqlServer.Management.DataTools.
Error Message: The row value(s) updated or deleted either do not make the row unique or they alter multiple rows(2 rows).

Correct the errors and attempt to delete the row again or press ESC to cancel the change(s).
---------------------------
OK Help
---------------------------

更新:
我以为 SSMS 是 XML 对抗的,但它对任何类型都是一样的

create table bbb(col1 int);
go
insert into bbb (col1)
values(33)
go 2

最佳答案

这是设计者/向导的限制

由于行是相同的,所以没有任何东西可以告诉sql server要删除这两行中的哪一行,记住它是一个程序而不是人类......(这也是在表上进行PK的一个原因)

但是您可以从查询窗口执行此操作

delete top (1)
from aaa
where convert(varchar(max),col1) = '<ccc>ddd</ccc>'

或者使用旧语法

set rowcount 1

delete
from aaa
where convert(varchar(max),col1) = '<ccc>ddd</ccc>'

set rowcount 0

关于sql-server - 为什么我无法在 SSMS 中删除(编辑)具有 xml 值的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4386592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com