DECLARE @DBName varchar(50), @TblName varchar(50), @SQLCmd varchar(150), @IndexFragID int, @objectID int DECLARE tblname CURSOR FOR SELECT DBName, objectID, IndexFragID FROM IndexFragmentation OPEN tblname FETCH NEXT FROM tblname INTO @DBName, @objectID, @IndexFragID WHILE @@fetch_status = 0 BEGIN SET @SQLCmd = 'SELECT TOP 1 [name] FROM ' + QUOTENAME(@DBName) + '.sys.all_objects where object_id = '+ CAST (@objectID AS VARCHAR(15)) SET @TblName = EXEC (@SQLCmd) UPDATE IndexFragmentation SET TblName = @TblName WHERE IndexFragID = @IndexFragID FETCH NEXT FROM tblname INTO @DBName, @objectID DELETE #dataspace END CLOSE tblname DEALLOCATE tblname>>Please tell me what is wrong with this. I was sure that I used this syntax before. What would be a better way to do this??
>> SET @SQLCmd = 'SELECT TOP 1 [name] FROM ' + QUOTENAME(@DBName) + >> '.sys.all_objects where object_id = '+ CAST (@objectID AS VARCHAR(15)) >> SET @TblName = EXEC (@SQLCmd) >>>>