SQL Server Compact“修复实用程序”在哪里?
Posted
技术标签:
【中文标题】SQL Server Compact“修复实用程序”在哪里?【英文标题】:Where is the SQL Server Compact "repair utility?" 【发布时间】:2014-04-11 00:04:37 【问题描述】:我使用 C# System.Data.SqlServerCe
版本 3.5.1.0 创建了一个 .SDF
数据库文件。创建后打开连接时,有时会收到以下错误:
数据库文件可能已损坏。运行修复实用程序检查 数据库文件。 [ 数据库名称 = \?\C:\SomeDatabase.sdf ]
“修复实用程序”在哪里?我们如何使用它?
我已经在 Google 和 *** 上搜索了答案:
SQL Server Compact 修复实用程序 SDF 修复实用程序这个MSDN article 谈论以编程方式进行。有命令行方法吗?
【问题讨论】:
【参考方案1】:这是一个可以运行的小型 C#.NET 控制台应用程序:
class Program
static void Main(string[] args)
SqlCeEngine engine =
new SqlCeEngine("Data Source = C:\\Users\\SomeUser\\Documents\\SomeDB.sdf");
if (false == engine.Verify())
Console.WriteLine("Database is corrupted.");
try
engine.Repair(null, RepairOption.DeleteCorruptedRows);
catch(SqlCeException ex)
Console.WriteLine(ex.Message);
Console.WriteLine("Press any key to continue.");
Console.ReadLine();
在此MSDN Article 中查找更多选项。使用ScriptCs在命令提示符下执行。
【讨论】:
首先试试这个:engine.Repair(null, RepairOption.RecoverAllPossibleRows);对我来说这也有效。【参考方案2】:您可以使用我的 sqlcecmd 工具来执行此操作,而无需编写任何代码。 https://github.com/erikej/sqlcecmd
【讨论】:
我投了赞成票,因为它很有帮助;成功下载您的工具并从命令行使用修复实用程序后,我会将其标记为答案。以上是关于SQL Server Compact“修复实用程序”在哪里?的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2008 到 SQL Server Compact Edition?
从 SQL Server Compact 4.0 迁移到 SQL Server Express 后提供程序错误
SQL Server 可以复制到 SQL Server Compact Edition 吗?
SQL Server Express 和 SQL Server Compact Edition
从使用 SQL Server Express 切换到 SQL Server Compact
SQL Server Compact Edition 和 SQL Server 2008 Management Studio