Hi:
If that's what you want, then your macro program is incorrect. You need the SET statement (the beginning of the statement) to be OUTSIDE the %DO loop and, you need the ending semicolon for the SET statement to be outside the DO loop.
So, that's the problem with your macro program.
However, the SET statement forces SAS to read each dataset, row, by row -- for 1000 datasets, depending on how big they are, this could take significant time to process. The PROC APPEND method may prove to be for efficient for processing, because the datasets are not read, row by row to construct the new dataset.
You might want to consider the PROC APPEND approach, unless there was other processing you were going to do in the DATA step program.
cynthia