SQL Server 2012 “Denali” CTP 1 – RESULT SETS – Parte 1

Bom dia pessoas,

Mais uma novidade do SQL Server 2011 é uso de RESULT SETS para o comando EXECUTE / EXEC, mas para o que serve isso? Basicamente, este recurso ajuda a “tipificar” (ou “tipar”) as consultas resultantes do EXECUTE / EXEC (ex.: Consultas dinâmicas e stored procedures).

Para o primeiro exemplo, sem muita complexidade, informamos os nomes e tipos das colunas de um resultado do comando EXEC:

DECLARE @CONSULTA VARCHAR(MAX)

SET @CONSULTA = 'SELECT object_id, name FROM master.sys.tables'

EXEC (@CONSULTA)
WITH RESULT SETS 
(
	(
		Codigo INT,
		Nome VARCHAR(250)
	)
)

Uma alternativa é utilizar tipos ou tabelas para “tipificar” de forma mais prática estes resultados:

CREATE TABLE TABELA_MODELO (
	Codigo INT,
	Nome VARCHAR(250)
)

CREATE TYPE TIPO_MODELO AS TABLE (
	Codigo INT,
	Nome VARCHAR(250)
)

GO

DECLARE @CONSULTA VARCHAR(MAX)

SET @CONSULTA = 'SELECT object_id, name FROM master.sys.tables'

EXEC (@CONSULTA)
WITH RESULT SETS 
(
	AS OBJECT dbo.TABELA_MODELO
)

EXEC (@CONSULTA)
WITH RESULT SETS 
(
	AS TYPE dbo.TIPO_MODELO
)

Assim como é possível “tipificar” um dos resultados do comando EXEC, também é abranger todos os resultados que venham a aparecer:

EXEC sp_help 'sp_help'
WITH RESULT SETS 
(
	(
		Nome VARCHAR(250),
		[Owner] VARCHAR(250),
		Tipo VARCHAR(250),
		Data DATETIME
	),
	(
		Parametro VARCHAR(250),
		Tipo VARCHAR(250),
		Tamanho INT,
		Precisao INT,
		Escala INT,
		Posicao INT,
		[Collation] VARCHAR(250)
	)
)

4 pensamentos sobre “SQL Server 2012 “Denali” CTP 1 – RESULT SETS – Parte 1

  1. Pingback: SQL Server 11 – Codinome Denali « Fabrício Lima

  2. Pingback: SQL Server 2011 CTP 1 – Resumo « SQL From Hell.com

  3. Pingback: SQL Server 11 – Codinome Denali | Fabrício Lima

  4. Pingback: SQL Server Denali CTP 3 – Resumo « SQL From Hell.com

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s