• BOL states that this happens for numeric and decimal so I'm betting it has something to do with the fact that those are the two data types that can take a precision and scale when declared. I tried playing around with making the scale 0 and that didn't work but the check may be such that it doesn't even check the scale.