SQL server UPDATE 问题

UPDATEProductSETStyle=(SELECTCASEStyleWHEN'M'THEN'男式'WHEN'U'THEN'通用'WHEN'W'THEN'女式'EL... UPDATE Product
SET Style =
(SELECT
CASE Style
WHEN 'M' THEN '男式'
WHEN 'U' THEN '通用'
WHEN 'W' THEN '女式'
ELSE '未知'
END)

报错:UPDATE 语句与 CHECK 约束"CK_Product_Style"冲突。该冲突发生于数据库"demo",表"dbo.Product", column 'Style'。
是想把 Product 表中的 Style 列中的 'M' 'U' 'W' 'NULL'用 CASE语句 替换成 '男式' '通用' '女式' '未知'。谢谢~
展开
 我来答
百度网友11d5d2d
2010-04-21 · TA获得超过119个赞
知道小有建树答主
回答量:145
采纳率:0%
帮助的人:157万
展开全部
语句写的有问题,
两个表之间 没有联系,如何更新。

根据问题补充 修改如下:
你的代码写的 没有条件 当然不行

===================

UPDATE Product
SET
Style = (SELECT
CASE
tu.Style
WHEN 'M' THEN '男式'
WHEN 'U' THEN '通用'
WHEN 'W' THEN '女式'
ELSE '未知'
END
FROM Product tu
WHERE tu.主键=hh.主键)

FROM Product hh
======================

把主键 替换为Product 表的主键

sql server 2005 测试通过。
涛涛谈谈
2010-04-20 · TA获得超过102个赞
知道答主
回答量:73
采纳率:0%
帮助的人:50.5万
展开全部
表dbo.Product的 定义了CHECK 约束,列'Style'被限定只能为可接受的数据值。不能为'男式'、'通用'、'女式'、'未知'中的任何一个

CHECK 约束:定义列中可接受的数据值。可以将 CHECK 约束应用于多个列,也可以将多个 CHECK 约束应用于单个列。当除去某个表时,也将除去 CHECK 约束。指定可由表中一列或多列接受的数据值或格式。例如,可以要求 authors 表的 zip 列只允许输入五位数的数字项。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友32c6f24eeab
2010-04-20 · TA获得超过458个赞
知道小有建树答主
回答量:415
采纳率:0%
帮助的人:0
展开全部
你在表Product上建立了外键约束了吧.Style字段是其他表的主键?

删除这个外键试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式