Здесь мое требование довольно удивительно, мне нужно обновить столбец той же таблицы ParentLinkID = LinkID, где Title равно ParentLinkTitle.Примечание: Title и ParentLinkTitle находятся в разных строках.Как можно обновить ParentLinkID, как упомянуто здесь?
CREATE TABLE #temp
(
LinkID INT,
Title NVARCHAR(100),
ParentLinkID INT,
ParentLinkTitle NVARCHAR(100)
)
INSERT INTO #temp
( LinkID ,
Title ,
ParentLinkID ,
ParentLinkTitle
)
VALUES ( 1 , -- LinkID - int
N'Dashboard' , -- Title - nvarchar(100)
0 , -- ParentLinkID - int
N'Ecommerce' -- ParentLinkTitle - nvarchar(100)
),
( 2 , -- LinkID - int
N'User' , -- Title - nvarchar(100)
0 , -- ParentLinkID - int
N'' -- ParentLinkTitle - nvarchar(100)
),
( 3 , -- LinkID - int
N'Ecommerce' , -- Title - nvarchar(100)
0 , -- ParentLinkID - int
N'User' -- ParentLinkTitle - nvarchar(100)
),
( 4 , -- LinkID - int
N'Shipping' , -- Title - nvarchar(100)
0 , -- ParentLinkID - int
N'Business' -- ParentLinkTitle - nvarchar(100)
),
( 5 , -- LinkID - int
N'Product' , -- Title - nvarchar(100)
0 , -- ParentLinkID - int
N'Dashboard' -- ParentLinkTitle - nvarchar(100)
),
( 6 , -- LinkID - int
N'Business' , -- Title - nvarchar(100)
0 , -- ParentLinkID - int
N'Product' -- ParentLinkTitle - nvarchar(100)
);
SELECT * FROM #temp
--Base Table
LinkID Title ParentLinkID ParentLinkTitle
1 Dashboard 0 Ecommerce
2 User 0
3 Ecommerce 0 User
4 Shipping 0 Business
5 Product 0 Dashboard
6 Business 0 Product
Необходимо обновить столбец таблицы #temp выше ParentLinkID, как показано ниже:
--OUTPUT
LinkID LinkTitle IsActive ParentLinkID ParentLinkTitle
1 Dashboard 1 3 Ecommerce
2 User 1 0 0
3 Ecommerce 1 2 User
4 Shipping 1 6 Business
5 Product 1 1 Dashboard
6 Business 1 5 Product