Your geocoding code is likely to connect to the geocoding service, and this precludes SQL CLR integration. It is technically possible that accessing external resources, especially web services, from within the SQL CLR is the biggest mistake you can make. Within a few days, your server will be frozen in working hunger due to robbery of the CLR flow guaranteed.
The best approach is to use the ETL strategy. Coordinates are uploaded to an intermediate table, you start your ETL process and convert all coordinates to geocodes and write the results to success and error tables. An ETL approach typically involves revision, invasion and renewal, etc. An ETL can be an SQL job launching an application, an SSIS package, there are many ways to do this, an important bit is dividing work into intermediate tables and providing suspend / resume semantics. The dll code that you have right now (which I assume is the proxy code of the geocoding web service client) is probably 0.001% of your project.
Whether the process should be exposed as a web service, it is completely orthogonal to the ETL process, and it should be managed by your client, combining requirements and technologies. In other words, if client-side preffer code loads coordinates using WS, do it this way if you take into account large arrays of data and as long as you provide split, asynchronous, and queued semantics for the results.
source share