我想SQL查询更新记录。例如,有3列在我的表-
姓名、地址、电子邮件
当我更新任何一列时,其他列的值应该为空,而不设置为空。
Update tbl_Student set Name = 'XYZ' where id = 1
在上述情况下,仅名称列应更新,其他列应更新为空。
仅供参考
因为有两列需要设置为null,所以我需要一些查询来实现。比如-
ID ADDRESS NAME EMAIL
1 PARK ROAD JOHN john@gmail.com
我只想更新名称,并希望其余的字段应该为空。
Update Table SET NAME = 'NICK' WHERE ID = 1
则更新后的输出应为-
ID ADDRESS NAME EMAIL
1 NULL NICK NULL
5条答案
按热度按时间f4t66c6m1#
像这样试试,
jum4pzuy2#
一个快速的想法a可以满足您的需求,那就是使用两个语句:
1.一个使所有内容(除了id)都为null的函数=〉在这个函数上放置一个触发器,它在第二个Update语句之前执行。
1.另一个函数用实际值更新所需的列。
您可以重新考虑表结构,使其更简单:
而不是拥有一个包含NULL列的庞大表,例如:
8wtpewkr3#
我的建议是,删除该记录并插入一个新的记录,其中只有列在事务中有值。因为,我认为您不希望将
NULL
设置为列id
(也可能是其他列)。样品:
注意:-如果
id
列是IDENTITY
,则必须使用SET IDENTITY_INSERT
对其进行管理hs1rzwqc4#
您可以为此创建触发器。
4sup72z85#
使用动态SQL来完成你想要完成的任务,这比前面所有的答案都要简单得多