I'm working on this myself and having found one of the most helpful Dynamics helpers out there (see http://varghesedanny.com/)
Here is a copy & paste of our recent volley back & forth about this...
I had been leaning towards plugin + XRM whereas my other main counterpart is looking into the SSIS method...
Assumptions:
1. Assuming you have the data already in the SQL database in a format ready for consumption
2. Assuming this is a database outside of CRM
Possible solutions:
Using XRM methodologies, you can create an “integration logs” entity with fields around status of the integration, an entry for the data integrated and a field for error handling. Then on update of a field (you can do this manually or using a button), trigger an asynchronous plug-in to read the database, parse the XML and pull it into CRM.
You can use SSIS (free with SQL Server) and add a scheduled task to kick off an integration process. This is a bit complex to setup, but not too bad.
- Scribe is third-party software, a bit expensive, but many of the operations are point and click and is a common tool used by many of our clients to integrate and migrate data. You can also setup automated batch jobs to integrate in intervals.
That being said there is workable code in PHP that my team has proven to work w/ Rollup 10 here...
http://code.google.com/p/php-dynamics-crm-2011/source/browse/branches/RB-1.0.2/RB-1.0.0/DynamicsCRM2011.demo.php?r=69