Our customers will each have their own copy of our DB, which could even be the Express version or otherwise. The DB will need to change on occasion (both data and structure) so each customer will need to run the script changes to their own DB. Of course, we don't want them to see any scripts (to keep it tamper-proof, and keep the DB names secret).
What's the recommended way to do something like this? Through an msi? If so, how is it created? We've never done this before, so not sure what the "best practice" is for creating and/or running SQL DB scripts when it needs to be run by the customers without them necessarily knowing it's happening.
Not sure if it matters, but we are using VB.NET, Visual Studio 2010, and SQL Server 2008 R2.