WITH
SQLServer2000に問題があります。CTEがSQLServer2005で導入されたため、再帰クエリを送信できません。
私の質問は次のとおりです。
プロシージャを使用したくないが、2つのクエリを送信できる場合、階層の回答を取得するにはどうすればよいですか。その場合、最初のクエリの回答を2番目のクエリに含めることができます。
これはSQLServer2005のクエリです。
WITH recursive_back (SOACTION,SOACTIONS) AS
(SELECT child.SOACTION,child.SOACTIONS
FROM soaction child
WHERE child.soaction ={id to search}
UNION ALL
SELECT parent.SOACTION,parent.SOACTIONS
FROM recursive_back child,soaction parent
WHERE child.soactions = parent.soaction ),
recursive_ahead (SOACTION,SOACTIONS) AS
(SELECT parent.SOACTION, parent.SOACTIONS
FROM soaction parent,recursive_back
WHERE parent.soaction=recursive_back.soaction
UNION ALL
SELECT child.SOACTION, child.SOACTIONS
FROM recursive_ahead parent, soaction child
WHERE child.soactions = parent.soaction)
SELECT R.SOACTION,R.SOACTIONS
FROM recursive_back R, SOACTION A
WHERE R.SOACTION=A.SOACTION
UNION
SELECT R.SOACTION,R.SOACTIONS
FROM recursive_ahead R, SOACTION A
WHERE R.SOACTION=A.SOACTION;
GO