1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Leitura de linhas numa storeprocedure Sql Server 2005

Discussão em 'Programação' iniciada por Galbne_PT, 29 de Junho de 2006. (Respostas: 4; Visualizações: 922)

  1. Galbne_PT

    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:
     
  2. Parafuso

    Parafuso Power Member

    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
     
  3. Galbne_PT

    Galbne_PT Power Member

    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.
     
  4. XiriX

    XiriX Banido

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

    Abs
    X|r|X
     
  5. Galbne_PT

    Galbne_PT Power Member

    Boas,
    É isso mm... claro.. como n me lembrei mais cedo! :lol:

    Brigadao!
     

Partilhar esta Página