我试图用一些“条件逻辑”来执行这个查询,这是我第一次尝试在数据库中这样做。
代码如下:
DECLARE @iddevice INT;
SET @iddevice = 15;
IF(@iddevice = 15 AND DEVICEATTRIBUTES.DEVICEATTRIBUTE = 'PortA')
BEGIN
UPDATE DEVICEATTRIBUTES
SET VALUE = '4701'
WHERE IDDEVICE = 15 AND DEVICEATTRIBUTES.DEVICEATTRIBUTE = 'PortA'
END
IF(@iddevice = 15 AND DEVICEATTRIBUTES.DEVICEATTRIBUTE = 'PortB')
BEGIN
UPDATE DEVICEATTRIBUTES
SET VALUE = '4711'
WHERE IDDEVICE = 15 AND DEVICEATTRIBUTES.DEVICEATTRIBUTE = 'PortB'
END
IF(@iddevice = 15 AND DEVICEATTRIBUTES.DEVICEATTRIBUTE = 'IP')
BEGIN
UPDATE DEVICEATTRIBUTES
SET VALUE = '172.19.106.201'
WHERE IDDEVICE = 15 AND DEVICEATTRIBUTES.DEVICEATTRIBUTE = 'IP'
END;
GO
我知道语法有问题,我的问题是。。。如何添加 DEVICEATTRIBUTES.DEVICEATTRIBUTE
在“如果”条款里?
2条答案
按热度按时间zc0qhyus1#
您可以按以下方式重新编写脚本:
zbdgwd5y2#
在sql server中,可以使用
UPDATE
与JOIN
:这个
VALUES
子句是一种添加要更改的值的简便方法,它降低了拼写错误的风险。但是,在代码中,可以只使用三个
UPDATE
s。这个IF
声明是没有必要的。如果没有行匹配WHERE
则不更新任何行。