私は製品を含むボックスを含むデータベースを持っています。SQLは複数の値を減らします
- GUIDParent : GUID of the product
- GUIDChild : GUID of the box
- DateDelete : if set association has been deleted
- Order : index of product in box
アソシエーションを削除するためのストアドプロシージャを作成しました(今すぐDateDeleteを設定します)。しかし、どのようにしてテーブルの順序を更新するコマンドを書くことができますか?
例:
- Product0 | Box1 | NULL | 0
- Product1 | Box1 | NULL | 1
- Product2 | Box1 | NULL | 2
- Product3 | Box1 | NULL | 3
- Product4 | Box1 | NULL | 4
削除Product2:
- Product0 | Box1 | NULL | 0
- Product1 | Box1 | NULL | 1
- Product2 | Box1 | 22/11/2017 | 2 (Or NULL ?)
- Product3 | Box1 | NULL | 2
- Product4 | Box1 | NULL | 3
は私が実際に(簡易版)を持っている:今、私は少し良くあなたの質問を理解していることを
ALTER PROCEDURE [deleteLink]
@guidParent uniqueidentifier,
@guidChild uniqueidentifier
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION
UPDATE ASSOTABLE SET DateDelete=GETDATE(),DateUpDate=GETUTCDATE()
WHERE GUIDParent = @guidParent AND GUIDChild = @guidChild
COMMIT TRANSACTION
RETURN 0;
END
これまでに何を試してみましたか?どのような問題が発生しましたか? 'UPDATE ASSOTABLE SET DateDelete = GETDATE()、DateUpDate = GETUTCDATE()、order = null'でしたか? 私にはうまくいくはずです... – Sander
@Sander問題は、Product2.OrderをNULLに設定するのではなく、Product3と4の順序を減らすことです。 –