Это то, что вы после?
Declare @OderDetail table
(Id int primary key,OrderId int,ItemId INT,Lookup varchar(15))
Insert @OderDetail values (1,1, 1,'A')
Insert @OderDetail values (2,1, 2,'BE')
Insert @OderDetail values (3,2, 1,'DR')
Insert @OderDetail values (4,2,2, 'D')
Insert @OderDetail values (5,3,2, 'DD')
Insert @OderDetail values (6,4,2, 'R');
declare @ItemId int=2 , @orderid int = 2;
Запрос
With cte As
(
Select ROW_NUMBER() OVER(ORDER BY OrderDate) AS RecN,
*
From @OderDetail Where ItemId=@ItemId
)
Select * From cte Where
RecN Between ((Select Top 1 RecN From cte Where OrderId = @orderid) -1) And
((Select Top 1 RecN From cte Where OrderId = @orderid) +1)
Order by id
Результат:
RecN Id OrderId ItemId Lookup
1 2 1 2 BE
2 4 2 2 D
3 5 3 2 DD
AppDomain
обеспечивает слой изоляции в рамках процесса. Все, о чем Вы обычно думаете как "на программу" (статические переменные и т.д.) на самом деле на - AppDomain. Это полезно для:
AppDomain
, но не блок в AppDomain
) боль - Вы, должен использовать дистанционную работу и т.д.
, Видят MSDN для партий больше информации Честно говоря, это не что-то, с чем необходимо смешать очень часто.
AppDomains может быть просмотрен как легкие процессы. Они совместно используют многие из тех же характеристик процесса, например, у них есть свои собственные копии помех, блоки и т.д, но они содержатся в рамках единственного процесса. С точки зрения операционной системы процесс является просто процессом, неважно, сколько AppDomains это может содержать.
В отличие от процесса однако, AppDomain не имеет никаких потоков, если Вы явно не создаете их. Поток может выполнить код в любом AppDomain.
AppDomains являются частью того же процесса и таким образом на самом деле совместно используют ту же управляемую "кучу". Это обычно - не проблема, так как модель программирования AppDomain предотвращает неявный доступ между AppDomains. Однако некоторые ссылки на самом деле совместно используются AppDomains, таким как текстовые объекты и интернировали строки.