Я использую SQL Server, а запросы использую SQL Server 2014 Management Studio.
Я вызываю хранимую процедуру в одном из моих подключений к базе данных, которая дает несколько наборов результатов.
Под «результирующими наборами» я подразумеваю, что он дает несколько выходных данных, например, как мы получаем два результирующих набора, если мы запрашиваем два оператора выбора. Количество строк в выводе не имеет значения.
Это проблема, потому что, если я запрашиваю его в другом подключении к БД, он дает только один ожидаемый набор результатов. Я ожидаю каких-либо настроек БД для хранимой процедуры или чего-то подобного.
P.S. Моя процедура использует UNION ALL
, сохраняет все во временной таблице и затем выводит эту временную таблицу.
Вот моя процедура:
CREATE PROCEDURE [dbo].[PROC]
(
@effDate DATE,
@EffWeekDate DATE
) WITH recompile
AS
BEGIN
SET TRANSACTION isolation level READ uncommitted
EXEC pos..sp_nms_check_frag
@table_name = 'abc',
@execute_command = 1,
@include_investigation = 0,
@include_indexes = 0,
@include_statistics = 1;
EXEC pos..sp_nms_check_frag
@table_name = 'def',
@execute_command = 1,
@include_investigation = 0,
@include_indexes = 0,
@include_statistics = 1;
EXEC los..sp_nms_check_frag
@table_name = 'xyz',
@execute_command = 1,
@include_investigation = 0,
@include_indexes = 0,
@include_statistics = 1;
EXEC los..sp_nms_check_frag
@table_name = 'pqr',
@execute_command = 1,
@include_investigation = 0,
@include_indexes = 0,
@include_statistics = 1; ;
WITH tmp_hierachy
(
column1,
column2,
column2_parent,
column3,
column4,
column5,
column6
)
AS
(
SELECT column2 'column1',
column2,
column2_parent,
a.column3,
a.column4,
a.column4 AS column5,
a.column6
FROM pos..abc A
WHERE a.rds_eff_dt = @effDate
AND a.column2 IN
(
SELECT column2
FROM los..xyz
WHERE @EffWeekDate BETWEEN rds_start_dt AND rds_end_dt
UNION ALL
SELECT column2
FROM los..pqr
WHERE @effDate BETWEEN rds_start_dt AND rds_end_dt
)
AND a.column2 != a.column2_parent
UNION ALL
SELECT tmp.column1,
a.column2,
a.column2_parent,
a.column3,
a.column4,
tmp.column5 - 1,
a.column6
FROM pos..abc A
INNER JOIN tmp_hierachy tmp
ON a.rds_eff_dt = @effDate
AND a.column3 = tmp.column3
AND tmp.column2_parent = a.column2
AND tmp.column5 >= 0
)
SELECT *
INTO #tmp_hierachy
FROM tmp_hierachy
SELECT a.column3,
a.column1,
a.column2,
column2_parent,
column4,
column5 AS column5,
column6,
b.column7,
b.column8,
b.column9
FROM #tmp_hierachy A
INNER JOIN pos..def B
ON a.column2 = b.column2
AND b.rds_eff_dt = @effDate
AND EXISTS
(
SELECT 1
FROM
(
SELECT column2,
column3,
Max(column5) AS max_level
FROM #tmp_hierachy
GROUP BY column2,
column3
) AS grp_node
WHERE grp_node.column2 = a.column2
AND grp_node.column3 = a.column3
AND grp_node.max_level = column5
)
ORDER BY column1,
column3,
column4,
column2_parent,
column2 OPTION (recompile)
END