• I have briefly explained it in Part 1. Sorry if this is not very clear.

    Meta data in this scenario means information SQL server holds to know what your table schema is i.e. how many columns it has , their data types and so on. This is something you get back by querying system catalogue views for e.g. sys.columns.

    Any ways meta data is generic term frequently used in any data storage back ends. So any data storage back end will store the actual data you asked it to store (like rows added to a table ) but the system itself needs to store information about hows/whats/wheres of this data(like what table schema is and so on) .This bit is commonly referred to as Meta data.

    Refer to Wiki definition http://en.wikipedia.org/wiki/Metadata for further details.

    Now coming to changing int to smallint, this will cause meta data to change (obvious) and SQL Server needs to ensure that existing data is valid for new data type range. Hence it has to examine all the data pages.

    Hope this helps