A macro defined using the ASTERISK (*) character is bound to the definitions of any tables it references as they were defined at the time the macro was created or replaced.
For example, consider the following macro:
CREATE MACRO get_emp AS ( SELECT * FROM employee;)
If a column is later added to or removed from the employee table, the following statement still returns the number of columns that existed in employee when get_emp was defined:
EXEC get_emp;
If columns have been dropped or data types have been changed, performing the macro can result in an error message or unexpected behavior.