Tenho essa SP criada com ajuda dos colegas do fórum. Ela está funcionando.
Agora preciso acrescentar outra saída para ler na aplicação.
Porém, preciso ter uma espécie de array com os valores de uma das colunas da tabela temporária (#del_ItensTabPrincipal)
ou da tabela física mesmo (tabPrincipal).
Se eu definir o valor de uma variável (devidamente declarada) como o resultado de um SELECT,
Set @NomeArquivo = (SELECT CampoQuePreciso FROM #del_ItensTabPrincipal)
ocorre erro,
"A subconsulta retornou mais de 1 valor.
Isso não é permitido quando a subconsulta segue um =, !=, <, <= , >, >= ou quando ela é usada como uma expressão."
Abaixo a SP (que está funcionando) na íntegra
USE [banco] GO /****** Object: StoredProcedure [dbo].[minha_sp] SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[minha_sp] @IdItem Int, @CodServ Int, @respostaSP VARCHAR(200) OUTPUT AS BEGIN TRANSACTION IF object_id('tempdb..#del_ItensTabPrincipal') IS NOT NULL BEGIN DROP TABLE #del_ItensTabPrincipal END SELECT Sel.idTabPrincipal AS PK INTO #del_ItensTabPrincipal FROM tabPrincipal AS Sel LEFT OUTER JOIN tabSecundaria ON Sel.idTabPrincipal = tabSecundaria.FK WHERE Sel.idTabPrincipal = @IdItem DELETE tabPrincipal FROM tabPrincipal AS C INNER JOIN #del_ItensTabPrincipal AS DelCurso ON C.idTabPrincipal = DelCurso.PK DELETE tabSecundaria FROM tabSecundaria AS M INNER JOIN #del_ItensTabPrincipal AS DelMod ON M.FK = DelMod.PK DELETE FROM tabAuxiliar WHERE CodReg = @IdItem AND cds = @CodServ IF(@@error = 1) BEGIN ROLLBACK TRANSACTION SET @respostaSP ='Desculpe, ocorreu um erro. A operação não pôde ser realizada.' PRINT @respostaSP RETURN END SET @respostaSP ='Operação bem-sucedida.' COMMIT TRANSACTION
Valew!