Answer to you first question that whats the difference between int and numeric (10,0)
Hence you have used 0 as scale in the numeric type there in no any difference between int and numeric. So difference is only regarding storage of variable. Here int will use 4 bytes and numeric(10,0) will use 9 bytes of storage.
Until and unless you add scale in numeric data type it's same as int. But when we are talking about storage, numeric type storage varies based on the size of precision declared . Numeric (p,s) maximum p is 38 default is 18, if not specified.
Second Question:
Does it make any difference on join : if you are not storing any data in the scale part of numeric, the answer is no. It won't effect the join.
e.g. int 3 in same as numeric 3.000
but 3 is not same as 3.11
It doesn't have any issue with the conversion while using is ssis package as well. if you are storing any numeric data with scale in int it will be rounded of.
e.g numeric 3.44 will be 3 as 3.55 will be 4
You are using numeric with 0 scale, so you won't have any issues.
Answer to you first question that whats the difference between int and numeric (10,0)
Hence you have used 0 as scale in the numeric type there in no any difference between int and numeric. So difference is only regarding storage of variable. Here int will use 4 bytes and numeric(10,0) will use 9 bytes of storage.
Until and unless you add scale in numeric data type it's same as int. But when we are talking about storage, numeric type storage varies based on the size of precision declared . Numeric (p,s) maximum p is 38 default is 18, if not specified.
Precision Storage bytes
1 - 9 5
10-19 9
20-28 13
29-38 17
Second Question:
Does it make any difference on join : if you are not storing any data in the scale part of numeric, the answer is no. It won't effect the join.
e.g. int 3 in same as numeric 3.000
but 3 is not same as 3.11
It doesn't have any issue with the conversion while using is ssis package as well. if you are storing any numeric data with scale in int it will be rounded of.
e.g numeric 3.44 will be 3 as 3.55 will be 4
You are using numeric with 0 scale, so you won't have any issues.