Skip to content

Instantly share code, notes, and snippets.

@ycaroafonso
Last active October 16, 2015 14:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ycaroafonso/e1bf64344f7ab69aa2d7 to your computer and use it in GitHub Desktop.
Save ycaroafonso/e1bf64344f7ab69aa2d7 to your computer and use it in GitHub Desktop.
Converte procedure para tabela
DECLARE @NomeProcedure VARCHAR(200)= 'Nome da Tabela',
@NomeSchema VARCHAR(200)= 'dbo'
DECLARE @SqlProcedure VARCHAR(MAX)= '',
@Sql VARCHAR(MAX)= ''
SELECT @SqlProcedure += ', ' + PARAMETER_NAME + ' = ' + CASE DATA_TYPE
WHEN 'datetime'
THEN '''' + CONVERT(VARCHAR(10), GETDATE(), 120) + ''''
WHEN 'int' THEN '0'
ELSE 'NULL'
END
FROM information_schema.parameters
WHERE SPECIFIC_NAME = @NomeProcedure
ORDER BY ORDINAL_POSITION
SET @SqlProcedure = @NomeSchema + '.' + @NomeProcedure + ' ' + STUFF(@SqlProcedure, 1, 2, '')
SELECT @Sql += ', ' + name + ' ' + system_type_name
FROM sys.dm_exec_describe_first_result_set_for_object(OBJECT_ID(@NomeSchema + '.' + @NomeProcedure), NULL)
SELECT 'DECLARE @Tabela TABLE (' + STUFF(@Sql, 1, 2, '') + ') INSERT INTO @Tabela '
UNION ALL
SELECT 'EXEC ' + @SqlProcedure
UNION ALL
SELECT '; SELECT * FROM @Tabela'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment