我目前正在製作存儲過程以更新產品詳細信息。我想讓它(如果可能的話)只在執行時在'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