• 1. The @Iteration set statement needs 'AND C.index_id = I.index_id' added to 'JOIN SYS.INDEX_COLUMNS C'

    SET @Iteration = (SELECT MAX(C.KEY_ORDINAL)

    FROM SYS.INDEXES I

    JOIN SYS.OBJECTS S-- Joining on SYS.OBJECTS to get the TableName

    ON S.OBJECT_ID = I.Object_ID-- to ensure the

    JOIN SYS.INDEX_COLUMNS C

    ON C.OBJECT_ID = I.Object_ID

    AND C.index_id = I.index_id-- ** 03/12/2010 CAJ **

    WHERE I.Type = @ClusteredIndexType

    AND I.OBJECT_ID NOT IN (SELECT OBJECT_ID

    FROM SYS.ALL_OBJECTS

    WHERE TYPE = 'S')-- Not system tables

    AND S.Type = 'U'

    AND S.is_ms_shipped = 0)

    2. Add 'DECLARE @SchemaName SYSNAME;' at the top

    3. Replace

    OBJECT_ID(N''' + @TableName + ''')

    with

    OBJECT_ID(N''' + @SchemaName + '.' + @TableName + ''')