Here's something to get you startedDECLARE @sql NVARCHAR(MAX)DECLARE @dbName SYSNAMEIF OBJECT_ID('tempDb..#dbDetails') IS NOT NULL DROP TABLE #dbDetailsCREATE TABLE #dbDetails ( [server] SYSNAME , [dbName] SYSNAME , [fileType] VARCHAR(20) , [filename] VARCHAR(MAX) , [size] BIGINT )DECLARE dbCursor CURSOR LOCAL READ_ONLY FORSELECT [name] FROM sys.databasesOPEN dbCursor FETCH NEXT FROM dbCursor INTO @dbName WHILE ( @@FETCH_STATUS = 0 ) BEGIN SET @sql = N' USE ' + QUOTENAME(@dbName) + ' INSERT INTO #dbDetails ( [server] , [dbName] , [fileType] , [filename] , [size] ) SELECT @@SERVERNAME , DB_NAME() , type_desc , physical_name , size FROM sys.database_files' EXEC (@sql) FETCH NEXT FROM dbCursor INTO @dbName ENDCLOSE dbCursorDEALLOCATE dbCursorSELECT * FROM #dbDetailsCharlie===============================================================Msg 3903, Level 16, State 1, Line 1736The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION