منصور بزرگمهر
سه شنبه 21 دی 1395, 15:41 عصر
درخواست توضیحات کامل در مورد نوع HierarchyId در SQL Server می باشم. کتاب، وب سایت، انگلیسی، فارسی باشد فرقی نمی کند. فقط توضیحات کامل دهد.
مثال msdn را خواندم، ولی وقتی به کد
WITH paths(path, EmployeeID)
AS (
-- This section provides the value for the root of the hierarchy
SELECT hierarchyid::GetRoot() AS OrgNode, EmployeeID
FROM #Children AS C
WHERE ManagerID IS NULL
UNION ALL
-- This section provides values for all nodes except the root
SELECT
CAST(p.path.ToString() + CAST(C.Num AS varchar(30)) + '/' AS hierarchyid),
C.EmployeeID
FROM #Children AS C
JOIN paths AS p
ON C.ManagerID = P.EmployeeID
)
INSERT NewOrg (OrgNode, O.EmployeeID, O.LoginID, O.ManagerID)
SELECT P.path, O.EmployeeID, O.LoginID, O.ManagerID
FROM EmployeeDemo AS O
JOIN Paths AS P
ON O.EmployeeID = P.EmployeeID
GO
رسیدم معنای WITH paths(path, EmployeeID)
AS ( را نفهمیدم. اصلاً WITH paths یعنی چه. آیا tutorial دیگری غیر از msdn در مورد این نوع داده وجود دارد.
لطفاً کمک کنید. نیاز به این نوع داده دارم.
متشکرم - بزرگمهر
مثال msdn را خواندم، ولی وقتی به کد
WITH paths(path, EmployeeID)
AS (
-- This section provides the value for the root of the hierarchy
SELECT hierarchyid::GetRoot() AS OrgNode, EmployeeID
FROM #Children AS C
WHERE ManagerID IS NULL
UNION ALL
-- This section provides values for all nodes except the root
SELECT
CAST(p.path.ToString() + CAST(C.Num AS varchar(30)) + '/' AS hierarchyid),
C.EmployeeID
FROM #Children AS C
JOIN paths AS p
ON C.ManagerID = P.EmployeeID
)
INSERT NewOrg (OrgNode, O.EmployeeID, O.LoginID, O.ManagerID)
SELECT P.path, O.EmployeeID, O.LoginID, O.ManagerID
FROM EmployeeDemo AS O
JOIN Paths AS P
ON O.EmployeeID = P.EmployeeID
GO
رسیدم معنای WITH paths(path, EmployeeID)
AS ( را نفهمیدم. اصلاً WITH paths یعنی چه. آیا tutorial دیگری غیر از msdn در مورد این نوع داده وجود دارد.
لطفاً کمک کنید. نیاز به این نوع داده دارم.
متشکرم - بزرگمهر