Leitura de linhas numa storeprocedure Sql Server 2005

Galbne_PT

Power Member
Boas ppl,

Gostaria de saber é possivel fazer o seguinte....
Ter uma store procedure k executa um select e o resultado desse select ser tratado na mm store procedure, dentro de um while, ou algo parecido...
A ideia é buscar dados a uma tabela, por cada linha de resultado inserir os dados numa outra tabela com umas alterações pelo meio :P

Eu keria mm k fosse td no mm store procedure, para poder fazer a transation e rollback no server e n no codigo do cliente!

Cumps,

Ps: Se for possivel podem indicar umas digas,tutorials, etc.. de como fazer! :002:
 
vê lá este exemplo, muito básico, somente para ficares com uma ideia:

/*
**********************************************************
* Procedimento: spObterDadosSelect
* Descricao: Devolve as contas de um utilizador
* Inputs:
* Outputs:
**********************************************************
*/

CREATE PROCEDURE [dbo].[spObterDadosSelect] @UserID varchar(256), @EmailUser varchar(256), @UtilizadorActivo bit AS
declare @existeUtilizadorActivo int
declare @maxID int
declare @ContasID varchar(20)

select @existeUtilizadorActivo = count(UserID)
from tblqueQuerias
where UserID = @UserID
and Activa <> 0

if @@ERROR <> 0 return 99

if @existeuTIlizadorActivO = 0
begin
-----------------------------------------------------------------------------------------------
-- Neste bloco de codigo deves colocar todas as alteracoes necessarias: insert/update/delete --
-----------------------------------------------------------------------------------------------
--ainda nao existe utilizador activo, pelo que temos de criar uma nova conta...
select @maxID = isnull(max(ContasID),0) + 1
from tblqueQuerias

insert into tblqueQueriass (ContasID, UserID, EmailUser, UtilizadorActivo)
values (@maxID, @UserID, null, @UtilizadorActivo)
end

select @ContasID = ContasID
from tblqueQuerias
where UserID = @UserID
and Activa <>0
and UtilizadorActivo = @UtilizadorActiva

select ContasID
from tblqueQuerias
where UserID = @UserID
and Activa <>0
and UtilizadorActivo = @UtilizadorActivo

if @@ERROR <> 0 return 99
else return @ContasID

GO
 
Parafuso disse:
vê lá este exemplo, muito básico, somente para ficares com uma ideia:

/*
**********************************************************
* Procedimento: spObterDadosSelect
* Descricao: Devolve as contas de um utilizador
* Inputs:
* Outputs:
**********************************************************
*/

CREATE PROCEDURE [dbo].[spObterDadosSelect] @UserID varchar(256), @EmailUser varchar(256), @UtilizadorActivo bit AS
declare @existeUtilizadorActivo int
declare @maxID int
declare @ContasID varchar(20)

select @existeUtilizadorActivo = count(UserID)
from tblqueQuerias
where UserID = @UserID
and Activa <> 0

if @@ERROR <> 0 return 99

if @existeuTIlizadorActivO = 0
begin
-----------------------------------------------------------------------------------------------
-- Neste bloco de codigo deves colocar todas as alteracoes necessarias: insert/update/delete --
-----------------------------------------------------------------------------------------------
--ainda nao existe utilizador activo, pelo que temos de criar uma nova conta...
select @maxID = isnull(max(ContasID),0) + 1
from tblqueQuerias

insert into tblqueQueriass (ContasID, UserID, EmailUser, UtilizadorActivo)
values (@maxID, @UserID, null, @UtilizadorActivo)
end

select @ContasID = ContasID
from tblqueQuerias
where UserID = @UserID
and Activa <>0
and UtilizadorActivo = @UtilizadorActiva

select ContasID
from tblqueQuerias
where UserID = @UserID
and Activa <>0
and UtilizadorActivo = @UtilizadorActivo

if @@ERROR <> 0 return 99
else return @ContasID

GO

Esta a abrir-se uma luz no fim do tunel.... é bem pensado, n mt eficiente... desde k funcione :P


Thanks... desde-me algumas ideias só com esse exemplo..... vou já po-las em pratica....

Cumps.
 
Galbne_PT disse:
Boas ppl,

Gostaria de saber é possivel fazer o seguinte....
Ter uma store procedure k executa um select e o resultado desse select ser tratado na mm store procedure, dentro de um while, ou algo parecido...
A ideia é buscar dados a uma tabela, por cada linha de resultado inserir os dados numa outra tabela com umas alterações pelo meio :P

Eu keria mm k fosse td no mm store procedure, para poder fazer a transation e rollback no server e n no codigo do cliente!

Cumps,

Ps: Se for possivel podem indicar umas digas,tutorials, etc.. de como fazer! :002:

Usa Cursores. É como se fosse um RecordSet/DataReader em SQL.

Abs
X|r|X
 
Back
Topo