Hello @Abdulla Mahammad Khan Dawood and welcome to Microsoft Q&A.
To only run the copy activity if data exists, we first need to know if the data exists. This can be accomplished by using a Lookup activity to get the number of rows in the changeset, either by a stored proc or by a query. After the Lookup activity, use an If activity conditioned on the results of the Lookup to run the Copy Activity.
Since you are doing multiple tables, there is another option. In your SQL create a stored procedure which returns the names of tables which have changes ready.
Use a Lookup activity to call this stored procedure and fetch those table names.
Then use a ForEach activity to iterate over each table name, passing it to the parameterized dataset in the Copy activity. This way only those tables with changes get copied.
Please let me know if this helped or if you want further clarification.