Autor
Mensagem
Aqui vai um exemplo de um procedure que recebe uma tabela e apenas lista seus registros (SELECT *).
Primeiramente, é preciso criar um tipo de dados que herda do tipo TABLE. Esse tipo de dados será uma tabela com a estrutura que você precisa.
CREATE TYPE TabelaParametro AS TABLE
(
ID INT,
VALOR DECIMAL(8,2)
)
GO
Feito isso, crie o procedure que recebe um parâmetro do tipo que você acabou de criar:
CREATE PROCEDURE LISTAR
@TABELA TabelaParametro READONLY --tem que ter o READONLY, pois os dados de uma tabela passada como parâmetro serão apenas para consulta
AS
BEGIN
SELECT * FROM @TABELA
END
Agora, um exemplo de como utilizar:
DECLARE @MinhaTabela TabelaParametro
INSERT INTO @MinhaTabela VALUES (1, 10)
INSERT INTO @MinhaTabela VALUES (2, 13.4)
INSERT INTO @MinhaTabela VALUES (3, 25.8)
INSERT INTO @MinhaTabela VALUES (4, 129.78)
EXEC LISTAR @MinhaTabela
Espero que sirva.
Primeiramente, é preciso criar um tipo de dados que herda do tipo TABLE. Esse tipo de dados será uma tabela com a estrutura que você precisa.
#Código
CREATE TYPE TabelaParametro AS TABLE
(
ID INT,
VALOR DECIMAL(8,2)
)
GO
Feito isso, crie o procedure que recebe um parâmetro do tipo que você acabou de criar:
#Código
CREATE PROCEDURE LISTAR
@TABELA TabelaParametro READONLY --tem que ter o READONLY, pois os dados de uma tabela passada como parâmetro serão apenas para consulta
AS
BEGIN
SELECT * FROM @TABELA
END
Agora, um exemplo de como utilizar:
#Código
DECLARE @MinhaTabela TabelaParametro
INSERT INTO @MinhaTabela VALUES (1, 10)
INSERT INTO @MinhaTabela VALUES (2, 13.4)
INSERT INTO @MinhaTabela VALUES (3, 25.8)
INSERT INTO @MinhaTabela VALUES (4, 129.78)
EXEC LISTAR @MinhaTabela
Espero que sirva.







