SQL错误[512] [21000]:子查询返回的值超过1

时间:2013-11-29 14:48:38

标签: sql sql-server

为什么不起作用? (SQL Server)

UPDATE
    someTable
SET
    name='AB'
WHERE 
    id IN (
        SELECT t.id 
        FROM someTable t 
        WHERE t.name='ABC'
        )

这个也不起作用

UPDATE
    someTable
SET
    name='AB'
WHERE 
    name='ABC'

1 个答案:

答案 0 :(得分:7)

因为桌面上必须有一个损坏的UPDATE触发器。

触发器中的常见错误没有考虑到语句可能会影响多行或零行,因此INSERTED / DELETED表并不总是只包含一行。

查看

等构造的触发器
SET @ID = (select ID FROM INSERTED)