Very easy:
I guess your situation is the following:
- You have a whole lot of datasources (db's, cubes, files, etc...)
- You use different datasources in different packages
- Some datasources might be used in several packages
First:
- Make sure you give the same datasources the same names in all packages
Then:
- In one of your packages, create a package configuration and choose type SQL server
- Create the variable you want and in your SQL Server database you'll see a table show-up called SSIS_configurations
- In that table you'll see a list of entries, one for every variable you created
- You can use these variables over several packages
- So link every datasource in every package to the right variable in your configuration table
- You can always add new variables to your table
When deploying to a different environment you can just copy the ssis_configurations table and change the values as you need
Our best practice is to create a seperate small SQL DB for this and just copy the entire db from development to production. That way, we have a set of values that apply in development and a seperate set in production.
Values I Always store in variables:
- OLE DB connection SERVERNAME
- OLE DB connection INITIAL CATALOG name
For the configurationDB connection we always use
- Fixed Servername: LOCALHOST
- Fixed DB-name: ETL_CONFIG
- Integrated Security login
Hope that helps you. If it's to vague, just let me know. I can go more in detail if necessary.