構造体のようなツリーを検索し、再帰的な結果セットを実行するために文字列を取り込むストアドプロシージャを記述する必要があります。まず、ここでのテーブルには、次のとおりです。ツリー構造から結果セットを構築するためのストアドプロシージャ?
CREATE TABLE [dbo].[WorkAreas] (
[Id] uniqueidentifier DEFAULT newid() NOT NULL,
[Name] nvarchar(max) COLLATE Latin1_General_CI_AS NULL,
[ParentWorkAreaId] uniqueidentifier NULL,
CONSTRAINT [PK__WorkArea__3214EC073FD07829] PRIMARY KEY CLUSTERED ([Id]),
CONSTRAINT [WorkArea_ParentWorkArea] FOREIGN KEY ([ParentWorkAreaId])
REFERENCES [dbo].[WorkAreas] ([Id])
ON UPDATE NO ACTION
ON DELETE NO ACTION,
)
私はこのような結果を出力するストアドプロシージャをたいと思います:
:これは実際のデータであればWork Area 1 - Child Of Work Area 1 - Child Child Of Work Area 1
だから、それはこのように見えるかもしれません
Top Floor - Room 7 - Left Wall
Top Floor - Room 9 - Ceiling
ストアドプロシージャは、パラメータに取る:@SearchTermのVARCHAR(255)
検索用語を希望結果を見て、「contains」クエリを実行します。
"Room 9"に合格した場合、結果はRoom 9の例になるはずです。そうでない場合、 "Room"という単語だけが渡された場合、両方の結果が表示されます。
私は結果を再帰的に構築するためにSPを構築する方法がわかりません。
にPROJECTIDを追加しました。このほとんど同じ質問を見て:http://stackoverflow.com/questions/4032192/printing-tree- with-sql-cte –
パーフェクト感謝! – DDiVita