在我们的开发环境中,我们长期以来通过各种SQL Server版本和不同的环境配置为我们的每个产品使用特定的备份和还原脚本,没有任何问题.
最近,我们已升级到SQL Server 2012,作为我们的标准开发服务器,具有SQL兼容级别2005(90),以维持对旧系统的支持.现在我们发现在一个特定的dev机器上,我们在尝试备份数据库时会出现以下错误:
无法使用备份文件'D:\ MyDB.bak',因为它最初使用扇区大小512格式化,现在位于扇区大小为4096的设备上.BACKUP DATABASE异常终止.
命令是:
BACKUP DATABASE MyDB TO DISK = N'D:\MyDB.bak' WITH INIT , NOUNLOAD , NAME = N'MyDB backup', NOSKIP , STATS = 10, NOFORMAT
Run Code Online (Sandbox Code Playgroud)
奇怪的是,该开发机器上的硬件和分区都没有改变,即使它们的扇区大小不同,这在以前也不是问题.
从我的研究(即谷歌搜索),除了使用该WITH BLOCKSIZE选项的建议之外,在这个问题上没有太多,但是那给了我相同的错误信息.
我的查询是:
BACKUP DATABASE MyDB TO DISK = N'D:\MyDB.bak' WITH INIT , NOUNLOAD , NAME = N'MyDB backup', NOSKIP , STATS = 10, NOFORMAT, BLOCKSIZE = 4096
Run Code Online (Sandbox Code Playgroud)
任何人都可以了解如何将数据库备份和恢复到具有不同扇区大小的HDD?
如果按住小键盘上的5键,它将继续在KeyDown事件处理程序中执行语句.即使我按住键,我怎样才能确保语句只执行一次?
感谢您的关注.
private void form_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.NumPad5)
{
dados.enviar("f"); //I want this to run only once!
}
}
Run Code Online (Sandbox Code Playgroud) 我有一组包含事务数据的对象.此数据集具有3级父子关系,其级别为:项目>阶段>事务.对于每个项目和阶段,将有多个交易.
class CostElement
{
string ProjectNumber { get; set; }
string Stage { get; set; }
string DerivedCostElement { get; set; }
DateTime? Date { get; set; }
decimal? Amount { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想要找到的是一个唯一的成本要素列表(DerivedCostElement),其中包含在任何给定单个项目中使用它的最大次数.即计算每个项目出现的阶段数,然后选择最大值.
到目前为止我尝试过的是:
//count all cost elements per project
var aggregateQuery = from ce in _costElements
group ce by new { ce.ProjectNumber, ce.Stage, ce.DerivedCostElement }
into g
select new
{
g.Key.DerivedCostElement,
g.Key.ProjectNumber,
g.Key.Stage
};
//select cost elements having max count
var countQuery = from …Run Code Online (Sandbox Code Playgroud)