Using stored procedures as part of an ETL process to populate tables in another database, which method would be considered a best practice (if any) in terms of deployment, maintenance, visibility and any other reasons for adopting a push or pull approach.
Push approach, the stored procedure would be in the Staging database and would push data into a table in the destination database.
Pull approach, the stored procedure would be in the destination database and would pull data from the Staging database.
Both approaches would involve cross-database queries and neither option appears to be perfect, though I prefer to keep all my ETL stored procedures and supporting objects in the Staging database away from others.
What approaches are people generally implementing?