Eu tenho algumas unidades de negócios, como Índia, Internacional, EUA, Reino Unido.
Eu tenho que:
- Crie uma variável de tabela (tabela de memória virtual) com colunas que correspondam ao
SP_Report
conjunto de resultados do procedimento armazenado - Declare um cursor que contém todas as unidades de negócios e, em seguida, o cursor deve percorrer as BU's
- Para cada BU, execute um procedimento armazenado chamado
SP_Report
e insira os dados na variável da tabela - Finalmente tenho que selecionar as colunas da variável da tabela + timestamp + BU, inseri-las em outra tabela e limpar a variável da tabela.
Código:
declare @K table (BU nvarchar(max), K nvarchar(max),Y money, A money, D money, YP money)
declare @FY int
declare @BU nvarchar(max)
INSERT INTO @K (BU, K, Y, A, D, YP)
EXEC dbo.SP_Report '2012', 'India'
SELECT * FROM @K
Este código retorna o resultado da variável de tabela. Agora eu tenho que usar o cursor, que eu não sei como. Como posso resolver o mesmo.
O tópico MSDN/BOL para DECLARE CURSOR contém sintaxe de exemplo para uso do cursor. Dito isto, como eu tinha 5 minutos de folga no trem esta manhã...
Você pode dar um passo adiante e fazer a consulta interna executar sql dinâmico, algo assim:
Eu acho que é o melhor exemplo para entender o CURSOR facilmente ..
Usando o cursor no SQL Server
exemplo simples para entender os cursores: