View Full Version : Leitura de linhas numa storeprocedure Sql Server 2005
Galbne_PT 29-06-2006, 17:48 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:
Parafuso 29-06-2006, 19:49 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
Galbne_PT 30-06-2006, 15:09 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.
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
Galbne_PT 03-07-2006, 12:42 Usa Cursores. É como se fosse um RecordSet/DataReader em SQL.
Abs
X|r|X
Boas,
É isso mm... claro.. como n me lembrei mais cedo! :lol:
Brigadao!
|
|