ICommandWithParameters
Improvements in the database engine beginning with SQL Server 2012 allow ICommandWithParameters::GetParameterInfo to obtain more accurate descriptions of the expected results. These more accurate results may differ from the values returned by CommandWithParameters::GetParameterInfo in previous versions of SQL Server. For more information, see Metadata Discovery.
Also beginning in SQL Server 2012, when calling ICommandWithParameters::SetParameterInfo, the value passed to the pwszName parameter must be a valid identifier. For more information, see Database Identifiers.