SQL Server supports a very rich type system. SSIS supports most SQL Server types. Unfortunately SQL Server implements it's own C++ style naming convention for these data types, which is confusing to say the least. It makes packages harder to debug and maintain. SSIS Variables are a whole different story, since their data types have different names from both SQL Server and the other areas of SSIS. For instance, a VARCHAR in SQL Server represents a variable length character string data type. In SSIS this is referred to as a "String" for variables, and a "string [DT_STR]" for data flow components. A SQL INTEGER, which is a 32-bit integer value, is referred to as "Int32" for variables and "four-byte signed integer [DT_I4]" in data flow components.