How can i prevent decryption in SQL Server procedures
SQL Server does not actually encrypt the definitions of objects, it obfuscates them instead. It is a bit misleading I am afraid as all it is really doing is making it unreadable to humans [excluding the use of tools as you previously mentioned]. 

Also SQL Server needs to know the contents of the procedures, functions &amp; views for when it needs to recompile the execution plan etc... so real encryption would prevent SQL Server from being able to do this. As a result this is not possible. 

My best recommendation if you are worried about IP &amp; copyright is to secure your software with Licensing. You may not be able to prevent someone from reverse engineering your code but you can sue the pants off them if they do.