Thank you all for your comments. Looks like lot of people are intrested in "making table readonly". Here are some of my reply to some of the comments so far.
1) By default bcp and bulk insert will ignore constraint for insert. So this solution won't work by default. You would have to add qualifier to be able to use this solution. More information about the options are avaliable from:
2) Thank you for pointing out the error with @tableName parameter with case sensitive database.
3) Disableing the clustered index is not a proper way to make table read only. Not every table has clustered index. Also you would have to rebuild the clustered index if you want to really do some useful things with that table later.
4) Setting read only table per user role is the perfered way to control data access to a table. However sometimes we want to just flip this flag on the fly after changing data to a table. If someone has full access right to database, he/she will be able to do anything regarding any table. The solution here is more about programatically flip the read only flag easily and prevent accidental insert/update/delete statement from general database users ("human").