我有一個ProductsAttributesValues表具有,插入或更新或刪除數據從表值參數
Id ProductId AttributeId Value ORDER
-------------------------------------------------
與屬性(同樣產品編號/屬性Id)可以有多個值,但具有不同的訂單的產品。我有一個類型,
CREATE TYPE [dbo].[ProductsAttributesValuesType] AS TABLE
(
[AttributeId] [INT],
[Value] [NVARCHAR](MAX)
)
我傳遞這ProductsAttributesValuesType
在我的存儲過程與產品編號參數表值參數。現在我所需要的東西似乎很簡單,但我被困住了。 ProductsAttributesValuesType
中的信息來自用戶界面。所以,
1)如果一個值爲空或空或空白,那麼我需要什麼也不做,並刪除所有現有的記錄從ProductsAttributesValues
具有相同的ProductId/AttributeId。 2)如果一個值不爲空或非空或非空白,則可能有單個值或多個值(ProductsAttributesValuesType
中的多個記錄)。如果存在單個值,如果不存在現有值,則需要插入,如果存在值,則更新。如果有多個值(ProductsAttributesValuesType
中有多個記錄),則需要在沒有現有值的情況下插入所有值,如果存在值,則需要更新/插入。
一種方法是簡單地刪除具有相同ProductId/AttributeId的所有ProductsAttributesValues
表。然後插入非空值的值。但我認爲這不是非常有效。
更新:目前,我首先刪除所有多值屬性值。接下來,我將刪除其中值爲空的所有屬性值。接下來,我插入/更新單個值屬性值。接下來,我插入多個屬性值。
看看'MERGE'。 –
我知道MERGE,但我被卡住了。你能解決這個問題嗎? – user960567
包括您到目前爲止所嘗試的內容以及源代碼/結果的示例集合。 – sarin