Мне нужно написать хранимую процедуру, которая будет принимать строку для поиска древовидной структуры и выполнения рекурсивного набора результатов. Во-первых, вот таблица:
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)
Поисковый запрос будет смотреть на результаты и выполнять запрос «содержит».
Так что, если мы перешли в «Комнату 9», результат должен был привести пример «Комната 9», или если было передано только слово «Комната», мы бы увидели оба результата.
Я не уверен, как построить SP для рекурсивного построения результатов.