-- Replace the path with the path where you have the DLL. CREATE ASSEMBLY helpdb FROM 'c:\test\helpdb.dll' go CREATE PROCEDURE helpdb @db sysname AS EXTERNAL NAME helpdb.StoredProcedures.helpdb go DECLARE @db sysname -- This type is needed for the SQL 2008 version of helpdb. /* CREATE TYPE helpdb_type AS TABLE (name sysname NOT NULL, fileid smallint NOT NULL, filename nvarchar(260) NOT NULL, filegroup sysname NULL, size nvarchar(18) NOT NULL, maxsize nvarchar(18) NOT NULL, growth nvarchar(18) NOT NULL, usage varchar(9) NOT NULL, PRIMARY KEY (name)) */ -- The table into which we accumulate the data. CREATE TABLE #helpdb(dbname sysname NOT NULL, logicalname sysname NOT NULL, fileid smallint NOT NULL, filename nvarchar(260) NOT NULL, filegroup sysname NULL, size nvarchar(18) NOT NULL, maxsize nvarchar(18) NOT NULL, growth nvarchar(18) NOT NULL, usage varchar(9) NOT NULL, PRIMARY KEY (dbname, logicalname)) -- Set up a cursor over all databases. DECLARE dbcur CURSOR STATIC LOCAL FOR SELECT name FROM sys.databases OPEN dbcur WHILE 1 = 1 BEGIN FETCH dbcur INTO @db IF @@fetch_status <> 0 BREAK EXEC helpdb @db END DEALLOCATE dbcur SELECT * FROM #helpdb ORDER BY dbname, logicalname go -- Clean up DROP TABLE #helpdb DROP PROCEDURE helpdb DROP ASSEMBLY helpdb DROP TYPE helpdb_type