Cursor dinâmico em uma stored procedure

Fevereiro 19, 2008

Bom dia pessoal, há uns dias atrás tive que comparar duas bases, source e destino, após uma importação. Então crie uma stored procedure que comparasse as duas bases levando em consideração a quantidade de registros, linhas, e a estrutura, colunas, das tabelas. Para fazer essa procedure eu tive a necessidade de criar cursores dinâmicos. Hoje eu vou mostrar como criar cursores dinâmicos numa stored procedure.  

Exemplo:

Declare @statement varchar(255) 

SELECT @statement = ‘DECLARE c CURSOR FOR Select convert(varchar, isnull(count(*), 0)) from dbo.’ + @tabela
EXEC(@statement) open c fetch next from c into @linhas
Close c
Deallocate c

SELECT @statement = ‘DECLARE d CURSOR FOR Select convert(varchar, isnull(count(*), 0)) from INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ”’ + @tabela + ””
EXEC(@statement) open d fetch next from d into @colunas
Close d
Deallocate d

Abs, André


Seguir

Get every new post delivered to your Inbox.