UPDATE [MyDatabase].[dbo].[Device]
SET nDeviceTypeID =(SELECT nDeviceTypeID FROM
DeviceType WHERE sDisplayName =COALESCE (@Role,sDisplayName))
WHERE nDeviceID IN (SELECT nDeviceID FROM [MyDatabase].[dbo].[AddressList]
WHERE sNetworkAddress LIKE '%' + @NetworkAddress2 + '%')
我有上述更新语句以更新参数时更新单元格。但是,当参数设置为 null 时,更新不会执行,这很好,但与其发回错误消息,我更愿意保留单元格的原始值而不执行任何更新。关于我做错什么或在哪里做错的任何想法?
编辑 1 网络地址参数永远不会为空,所以我只需要确保 @Role 不为空。如果 @Role 为 NULL,我想保留单元格的原始值。