

我简单看了一下它的核心代码,获取源数据库的Schema是用了SQL Server 2005的SQL Server Management Objects (SMO)实现的,有了Schema之后生成创建数据库的SQL脚本就不是难事了。
不过我在为SQL Server 2000自带的Northwind数据库生成相应的SQL Server Compact 3.5数据库时,有些表在复制数据库的时候出错,可能是没有处理好image类型的字段。为了兼容SQL Server Compact 3.1和3.5,用了反射技术来创建System.Data.SqlServerCe命名空间下的类型的实例。建议自己下载代码研究研究,我这里不再详细介绍了。
原文: SQL Server to SQL Server Compact Edition Database Copy Utility
SMO文档: http://msdn.microsoft.com/zh-cn/library/ms162169.aspx