• I think the main reason for sql_variants has been missed here and are therefore being bashed unfairly. Their purpose is to allow different data types to be stored in a column so each row potentially has a different data type for that column. This is useful for allowing end users to decide what to store in "their" column on a per row basis. Think of this as intentional late binding...which always adds flexibility and power at the cost of performance. The SQL_VARIANT_PROPERTY function will tell you the type a user has used for a given row.