【发布时间】:2017-10-11 01:30:06
【问题描述】:
我正在尝试使用 Visual Studio 2017 社区缩小 LocalDb。我有一个 Win7 客户端 Windows 窗体应用程序,其中包含一个小型数据库(约 10MB 数据),由于 LocalDb 可用空间分配,导致数据库大小为 150MB。
我发现这个答案 (Executing Shrink on SQL Server database using command from linq-to-sql) 建议使用以下代码:
context.Database.ExecuteSqlCommand(
"DBCC SHRINKDATABASE(@file)",
new SqlParameter("@file", DatabaseTools.Instance.DatabasePathName)
);
DatabaseTools.Instance.DatabasePathName 从单个 DatabaseTools 类实例返回我的数据库的文件系统位置。
代码运行,但我不断收到此异常:
System.Data.SqlClient.SqlException: '无法在用户事务中执行收缩数据库操作。终止交易并重新发出声明。'
我之前尝试过COMMIT,但完全没有成功。关于如何从 C# 代码中有效地缩小数据库的任何想法?
谢谢!
【问题讨论】: