Template Script: System Proc\sp_Html.sql

USE MASTER
GO
IF OBJECT_ID('dbo.sp_Html') IS NULL
    EXEC ('CREATE PROCEDURE dbo.sp_Html AS SELECT 1 AS ID')
GO
ALTER PROCEDURE dbo.sp_Html
    @InputSQL VARCHAR(MAX) = NULL,
    @Header VARCHAR(MAX) = NULL,
    @HTML VARCHAR(MAX) = NULL OUTPUT
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
IF @InputSQL IS NULL
    BEGIN
        EXEC master.dbo.sp_ExecTemplate
            @ObjectName = 'sp_Html',
            @PrintDefault = 0,
            @DeclareReturn = 0,
            @PrintReturnLine = 0,
            @DoNotDeclareVar = 1
        RETURN
    END
DECLARE @SQL VARCHAR(MAX),
    @TempTableName VARCHAR(256) = 'TEMPDB..GetTableDefinition_' + LEFT(REPLACE(CAST(NEWID() AS VARCHAR(500)), '-', ''), 30),
    @DropTempTable BIT = 1,
    @Database SYSNAME

SET @Database = 'tempdb'

IF OBJECT_ID(@InputSQL) IS NOT NULL
    SELECT  @Database = PARSENAME(@InputSQL, 3),
            @TempTableName = @InputSQL,
            @DropTempTable = 0
ELSE
    IF @InputSQL LIKE '#%'
        AND OBJECT_ID('tempdb..' + @InputSQL) IS NOT NULL
        SELECT  @TempTableName = @InputSQL,
                @DropTempTable = 0
    ELSE
        IF @InputSQL LIKE '%#%'
            BEGIN
                SET @SQL = ';WITH aa as(' + @InputSQL + ')
                SELECT * INTO '
 + @TempTableName + ' FROM aa'

                EXEC(@SQL)
            END
        ELSE
            BEGIN
                SET @SQL = 'SELECT a.* INTO ' + @TempTableName + ' FROM (' + @InputSQL + ') a'
                BEGIN TRY
                    EXEC(@SQL)
                END TRY
                BEGIN CATCH
                    SET @SQL = 'SELECT a.* INTO ' + @TempTableName + ' FROM OPENROWSET(''SQLNCLI'', ''Server=' + @@SERVERNAME + ';DATABASE=' + DB_NAME()
                        + ';Trusted_Connection=yes;'', ''' + REPLACE(@InputSQL, '''', '''''') + '

'') AS a;'

                    EXEC(@SQL)
                END CATCH
            END
EXEC dbo.sp_HtmlDetail
    @Database = @Database,
    @Table = @TempTableName,
    @Header = @Header,
    @HTML = @HTML OUTPUT
IF @DropTempTable = 1
    EXEC('DROP TABLE ' + @TempTableName)
GO
EXEC sys.sp_ms_marksystemobject
    sp_Html
GO

Description for Template Script: System Proc\sp_Html.sql

Todo
Site Map | Printable View | © 2008 - 2012 NuRoN Consulting, INC | Powered by mojoPortal | HTML 5 | CSS | Original design by Andreas Viklund
Share This Using Popular Bookmarking Services