
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语句 替换成 '男式' '通用' '女式' '未知'。谢谢~ 展开
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语句 替换成 '男式' '通用' '女式' '未知'。谢谢~ 展开
3个回答
展开全部
语句写的有问题,
两个表之间 没有联系,如何更新。
根据问题补充 修改如下:
你的代码写的 没有条件 当然不行
===================
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 测试通过。
两个表之间 没有联系,如何更新。
根据问题补充 修改如下:
你的代码写的 没有条件 当然不行
===================
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 测试通过。
展开全部
表dbo.Product的 定义了CHECK 约束,列'Style'被限定只能为可接受的数据值。不能为'男式'、'通用'、'女式'、'未知'中的任何一个
CHECK 约束:定义列中可接受的数据值。可以将 CHECK 约束应用于多个列,也可以将多个 CHECK 约束应用于单个列。当除去某个表时,也将除去 CHECK 约束。指定可由表中一列或多列接受的数据值或格式。例如,可以要求 authors 表的 zip 列只允许输入五位数的数字项。
CHECK 约束:定义列中可接受的数据值。可以将 CHECK 约束应用于多个列,也可以将多个 CHECK 约束应用于单个列。当除去某个表时,也将除去 CHECK 约束。指定可由表中一列或多列接受的数据值或格式。例如,可以要求 authors 表的 zip 列只允许输入五位数的数字项。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在表Product上建立了外键约束了吧.Style字段是其他表的主键?
删除这个外键试试。
删除这个外键试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询