/* create a cursor against sysobjects and perform a repetitive operation against the current database. Change the operation by setting @procedure, @criteria, and @type */ DECLARE @procedure varchar(20), @objectname varchar(30), @criteria varchar(20), @type varchar(2), @database varchar(30) set nocount on select @procedure = "sp_spaceused" -- do not include trailing space select @criteria = "%" select @type = "U" /* U - table, P - stored procedure, TR - trigger, V - view */ select @database = (select name from master..sysdatabases where dbid = (select dbid from master..sysprocesses where spid = @@SPID)) DECLARE object_cursor CURSOR FOR SELECT name FROM sysobjects WHERE type = @type and name like @criteria order by name OPEN object_cursor FETCH NEXT FROM object_cursor INTO @objectname WHILE (@@fetch_status <> -1) BEGIN print @objectname EXECUTE (@procedure + " " + @objectname) FETCH NEXT FROM object_cursor INTO @objectname END print "" PRINT "All objects processed." DEALLOCATE object_cursor