首页 > 解决方案 > T-SQL 在创建备份文件后立即删除它

问题描述

我在 PHP / PDO 中创建了一个脚本,它执行一行 SQL 来对各种数据库进行文件备份。数据库名称列表和用于选择放置文件的文件夹的日期戳作为 HTTP REQUEST 数组元素传递。该脚本有效,但由于某种原因,一旦脚本完成运行,SQL Server 就会删除该文件。在资源管理器打开的情况下,我可以看到正确创建的文件夹和文件,但文件在完成后消失。这是

$dbh = getPDOConnection();
$sql = "BACKUP DATABASE :database TO DISK = :path";
$sth = $dbh->prepare($sql);
$dt = $_REQUEST["dtStamp"];

$uncPath = "\\\\[unc server]\\c$\MSSQL\\Backup\\backups_$dt";

if (!file_exists($uncPath)) {
    mkdir($uncPath, null, true);
}
$responses = [];
foreach(explode(",", $_REQUEST["databases"]) AS $d=>$database) {
    $sqlPath = "c:\\MSSQL\\Backup\\backups_$dt\\$database.bak";

    $sth->bindValue(":database", $database);
    $sth->bindValue(":path", $sqlPath);
    $sth->execute();

    $responses[] = $sth->fetch(PDO::FETCH_ASSOC);
}

谁能指出我所缺少的?我似乎找不到任何来自 Microsoft 的文档来说明为什么会发生这种行为。

标签: phptsqlpdobackupdelete-file

解决方案


推荐阅读