p;the object is in the
** current database. Also get the table name - this is later
** needed to see if information is being requested for syslogs.
*/
execute sp_namecrack @objname,
@db = @dbname output,
@object = @tabname output
if @dbname is not NULL
begin
/*
** 17460, "Object must be in the current database."
*/
if (@dbname != db_name())
begin
exec sp_getmessage 17460, @msg output
print @msg
return (1)
end
end
/*
** Does the object exist?
*/
if not exists (select *
from sysobjects
where id = object_id(@objname))
begin
/*
** 17461, "Object does not exist in this database."
*/
exec sp_getmessage 17461, @msg output
print @msg
return (1)
end
/* Get the object type */
select @type = sysstat & 7
from sysobjects
where id = object_id(@objname)
/*
** See if it's a space object.
** types are:
** 0 - trigger
** 1 - system table
** 2 - view
** 3 - user table
** 4 - sproc
** 6 - default
** 7 - rule
*/
if not exists (select *
from sysindexes
where id = object_id(@objname)
and indid < 2)
begin
if @type in (0, 4, 6, 7)
begin
/*
** 17830, "Object is stored in 'sysprocedures' and
** has no space allocated directly."
*/
exec sp_getmessage 17830, @msg output
print @msg
return (1)
end
if @type = 2
begin
/*
** 17831, "Views don't have space allocated."
*/
exec sp_getmessage 17831, @msg output
print @msg
return (1)
end
end
end
/*
** First we want summary data.
*/
set nocount on
declare @slog_res_pgs numeric(20,9), /* number of reserved pgs. in syslogs */
&n