Bruno Perroni
DBA SQL Server com mais de 6 anos de experiência!

Exec Procedure Into Table

Fala galera, tudo bem com vocês ?

Nessa postagem vou mostrar para vocês como inserir o resultado de uma procedure em uma tabela temporária.

No exemplo eu vou usar uma procedure bem simples que retorna o Nome, Sobrenome e o Cargo utilizando o banco de dados AdventureWorks2014 como base.

Pra quem não sabe, o banco de dados de exemplo AdventureWorks em suas mais variadas versões é de uma empresa de bicicletas e de componentes para bicicletas.

CREATE PROC uspGetJobTitle
AS
BEGIN
	SET NOCOUNT ON

	SELECT P.FirstName
		,P.LastName
		,E.JobTitle
	FROM HumanResources.Employee E
	INNER JOIN Person.Person P ON P.BusinessEntityID = E.BusinessEntityID
END

Bom agora que já temos a procedure, vamos criar um tabela temporária.

CREATE TABLE #uspGetJobTitle_Tabela
(
	 Nome VARCHAR(30)
	,Sobrenome VARCHAR(30)
	,Cargo VARCHAR(50)
)

Criada a tabela temporária, vamos inserir o resultado da procedure na tabela criada, usando o script abaixo, que na verdade é bem simples, como vocês podem notar.

INSERT
INTO #uspGetJobTitle_Tabela
EXEC uspGetJobTitle

Dessa forma Podemos utilizar o dados retornados na procedure para realizar Joins com outras tabelas.

Espero que tenha sido útil.

Até mais.