您好我的c盘中的日志文件为databasename_yyyymmddhhmm.trn0 formate。我们每30分钟获得3个事务日志文件,以0,1,2结尾 我正在使用
Restore database [databasename]
From disk=N 'c:\foldername\databasename_yyyymmddhhmm.trn0',
Disk = N 'c:\foldername\databasename_yyyymmddhhmm.trn1',
Disk= N 'c:\foldername\databasename_yyyymmddhhmm.trn2'
With norecovery
Go
恢复日志文件。但是我希望每30分钟使用一个时间戳每30分钟更改一次连续进程 例如:databasename _201701260700.trn0 30分钟后,我们得到另一个文件,如databasename_201701260730.trn0 那么我怎样才能“改变我的查询”,以便我可以在sql server agent作业中每30分钟运行一次,并改变时间戳。
提前致谢
答案 0 :(得分:0)
嗯,你不能确定日志文件会有你想要的确切时间,所以我会用以下内容获取文件:
SUBSTRING
然后,更新该表以使用LEFT
或RIGHT
和update #FileNames
set LogTime = left(right('subdirectory',17),12)
将文件名解析为LogTime,以获取日志文件的yyymmddhhmm。这是一个例子:
select left(right('c:\foldername\databasename_yyyymmddhhmm.trn0',17),12)
基本上这样做:
this.populateCodeList = function (ptNames_, listSelector_) {
if (!ptNames_) { return self.displayError("Invalid pt name", "populatecodeList"); }
if (!ptNames_.length) { return self.displayError("Invalid pt name", "populatecodeList"); }
if (!listSelector_) { return self.displayError("Invalid list selector", "populatecodeList"); }
var html = "";
$_.each(ptNames_, function (ptName_) {
var pt = self.registry.pt[ptName_];
if (!pt) { return self.displayError("Invalid PT: " + ptName_, "populateCodeList"); }
$_.each(pt.codes, function (index_, code) {
if (!code || !code.id || !code.name) { return self.displayError("Invalid code at index " + index_, "populateCodeList"); }
html += "<option value='" + code.id + "'>" + code.name + "</option>";
});
$_(listSelector_).html(html);
};
然后,使用文件名构建您的dyamic sql,基于表中的最后3个。 Booyakasha!