我目前正在制作存储过程以更新产品详细信息。我想让它(如果可能的话)只在执行时在'values'列下输入的字段被更新,其余部分保持不变。更新存储过程 - 仅更新某些字段并保留其他字段
ALTER PROCEDURE [dbo].[spUpdateProduct]
@ProductID int, @Brand nvarchar(30), @ModelNo nvarchar(9), @Description
nvarchar(50), @CostPrice decimal(6,2), @Stock int, @SalePrice decimal(6,2)
AS
BEGIN
SET NOCOUNT ON
UPDATE tblProduct
SET
Brand = @Brand,
ModelNo = @ModelNo,
[Description] = @Description,
CostPrice = @CostPrice,
Stock = @Stock,
SalePrice = @SalePrice
WHERE ProductID = @ProductID
END
这是目前我所拥有的。当我去改变一个值时,它错误地说我没有输入'Brand'的值,这是'ProductID'之后的下一个值。
Error when trying to update two fields (ProductID and CostPrice)
编辑:字段设置为 'NOT NULL' 当我创建的表。
首先,当使用SSMS的执行窗口时,如果您没有将值传递给参数,则需要检查传递空值复选框。其次,列是可以空的吗? –
我试过了,但它错误说我不能插入NULL值,因为列不允许为空(因为我在创建表时创建了'NOT NULL'列)。 – killerwild