rss search

SQL 2008 hierarchyid

line

Der SQL Server 2008 hat einen neuen Datentyp hierarchyid. Kurz formuliert lässt sich mit diesem Datentyp  eine Hierarchy Abbilden und einige Funktionen darauf ausführen. Der Datentyp ist ein CLR Datentyp, d.h. er ist in .NET geschrieben. Was mir fehlte, war eine Funktion, um alle Eltern eines Knotens zu erfragen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
CREATE FUNCTION fn_get_parent_hierarchyids
(
	@CurrentHierarchy hierarchyid,
	@IncludeParam bit = 1
)
RETURNS 
@tblHierarchy TABLE 
(
	hierarchy hierarchyid NOT NULL
)
AS
BEGIN
	-- Fill the table variable with the rows for your result set
 
	declare @L_Parent hierarchyid
 
	IF 1 = @IncludeParam
	begin
		INSERT INTO 
			@tblHierarchy 
		VALUES (
			@CurrentHierarchy
		)
	end
 
	SELECT DISTINCT
		@L_Parent = @CurrentHierarchy.GetAncestor(1)
	FROM
		tabelle
 
	while NOT @L_Parent IS NULL
	begin
 
		INSERT INTO 
			@tblHierarchy 
		VALUES (
			@L_Parent
		)
 
		SELECT DISTINCT
			@L_Parent = @L_Parent.GetAncestor(1)
		FROM
			tabelle
 
	end
 
	RETURN 
END
PDF erstellen    Sende Artikel als PDF an


Leave a Reply