none
trabalhando com procedure RRS feed

  • Pergunta

  • ola galera, tenho problemas, e uma duvida , tenho uma procedure que faz umas verificações nos campos antes de inserir na tabela.
    usando passagem de parametros eu consigo usar essa sp, gostaria de saber se tem uma forma de eu ler tuma tabela e chamar essa sp pra cada registro que a tabela tiver?
    algo como

    for i = 0 , i ++,i = n

    exec <procedure>  <tabela>.<campo>

    passando a tabela para procedure via parametro.
    segunda-feira, 30 de novembro de 2009 12:12

Todas as Respostas

  • Bom Dia,

    Há algumas formas para fazer essa "não trivial" implementação. Eu acredito que se você deseja para cada registro executar uma SP, então seria interessante o uso de um cursor e não passar o nome da tabela como parâmetro. Ex:

    -- Declara uma variável para armazenar o ID
    DECLARE @ID INT
    -- Declara um cursor para ler todos os registros
    DECLARE cCursor CURSOR
    FAST_FORWARD FOR
    SELECT ID FROM Tabela
    OPEN cCursor
    FETCH NEXT FROM Tabelas INTO @ID
    WHILE @@FETCH_STATUS = 0
    BEGIN
        EXEC SuaSP @ID
        FETCH NEXT FROM Tabelas INTO @ID
    END 
    CLOSE cCursor
    DEALLOCATE cCursor


    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    A Impedância, o Mapeamento Objeto Relacional e Implementações – Parte II
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!814.entry


    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 30 de novembro de 2009 12:25