You can use a Data Flow task to transform data from the SQL table into the CSV Flat File. Then you can use. Then add a FTP Task to the Control flow to transfer the flat file to the FTP. If you have multiple Tables, then depends on the table structure whether you can use eg. For Each Loop container and both the Data Flow and FTP Task inside it or choose other approach (multiple data flows with multiple FTP Tasks or eg. Single Data Flow with multiple transformations inside and a single FTP Task inside For Each Loop container to transfer all the generated flat files. There is a lot of possibilities and the best one depends on your concrete scenario. Also instead of a FTP Task you can use eg. Execute Process Task to launch eg. a third party FTP client (eg. SCP for secure transfers).