USP_DATABASESPACEUSED_ANALYZETABLE

Parameters

Parameter Parameter Type Mode Description
@SCHEMA nvarchar(128) IN
@TABLE nvarchar(128) IN

Definition

Copy


CREATE procedure dbo.[USP_DATABASESPACEUSED_ANALYZETABLE]
(
    @SCHEMA nvarchar(128),
    @TABLE nvarchar(128)
)
with execute as owner
as begin
    set nocount on;

    if object_id('tempdb..#SPACEUSED') is null
        raiserror('BBERR_TEMPTABLEDOESNOTEXIST: The temporary table #SPACEUSED must be created before this procedure can be called.', 13, 1);

    declare @SPACEUSED table (
        [NAME] nvarchar(128) collate database_default,
        [ROWS] integer
        [RESERVED] nvarchar(100) collate database_default,
        [DATA] nvarchar(100) collate database_default,
        [INDEX] nvarchar(100) collate database_default,
        [UNUSED] nvarchar(100) collate database_default
    );

    declare @SCHEMAANDTABLE nvarchar(257);

    set @SCHEMAANDTABLE = '[' + @SCHEMA + '].[' + @TABLE + ']'

    -- temp tables may be dropped before the process gets to them

    if object_id(@SCHEMAANDTABLE) is not null
        begin
            insert into @SPACEUSED exec sp_spaceused @SCHEMAANDTABLE;

            insert into #SPACEUSED select @SCHEMA, @TABLE, [ROWS], [RESERVED], [DATA], [INDEX], [UNUSED] from @SPACEUSED; --#1214166: using @TABLE here for table name

        end

    return 0;
end