Para facilitar minha vida e ajudar alguns estou publicando o código de uma procedure que estou utilizando bastante no dia-a-dia.
A procedure recebe como parâmetro o nome de uma tabela (em String) e retorna a consulta SQL com todos os campos da tabela ordenados da mesma maneira que a tabela foi criada.
CREATE PROCEDURE spQuery (@Nm_tb VARCHAR(200))
/*
Autor: @ThiagoThamiel
Data: 06/12/2012
Descrição: Retornar a query com os campos para consulta de uma tabela recebida por parametro
*/
AS
BEGIN
Declare @NomeColuna varchar(100)
Declare @MontaQuery varchar(8000)
set @MontaQuery = ''
DECLARE Cursor1 CURSOR FOR
SELECT UPPER(NAME) AS 'NAME' FROM SYSCOLUMNS WHERE ID IN (SELECT ID FROM SYSOBJECTS WHERE NAME = @Nm_tb ) ORDER BY COLID
OPEN Cursor1;
FETCH NEXT FROM Cursor1 INTO @NomeColuna ;
WHILE @@FETCH_STATUS = 0
BEGIN
IF @MontaQuery = '' BEGIN
SET @MontaQuery = @MontaQuery + @NomeColuna
END ELSE BEGIN
SET @MontaQuery = @MontaQuery + ', ' + @NomeColuna
END ;
FETCH NEXT FROM Cursor1 INTO @NomeColuna;
END;
CLOSE Cursor1;
DEALLOCATE Cursor1;
print 'SELECT ' + @MontaQuery + ' FROM ' + @Nm_tb
END
Chamada da Procedure:
spQuery 'tscdvd'
Categorias:Programação
Deixe uma resposta