Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Php memanggil skrip database cadangan sqlserver, file cadangan dibuat dan kemudian dihapus

Ini solusinya, yang cocok untuk saya:

  • jalankan sqlsrv_configure("WarningsReturnAsErrors", 0); untuk mengubah setelan penanganan kesalahan.
  • hapus WITH STATS = 1 dari BACKUP DATABASE pernyataan.

Saya dapat mereproduksi masalah ini dengan kasus uji menggunakan Apache 2.4, PHP 7.1.12 dan Microsoft PHP Driver untuk SQL Server (php_sqlsrv_71_ts_x86.dll, versi 4.3). Satu-satunya perbedaan adalah bahwa contoh menggunakan Driver SQLSRV (Saya tidak dapat menggunakan Driver PDO_SQLSRV di lingkungan pengujian saya).

PHP

<?php
    sqlsrv_configure("WarningsReturnAsErrors", 0);

    // Connection
    $serverName = "127.0.0.1\instance,1433";
    $connectionInfo = array(
        "UID"=>"user",
        "PWD"=>"password",
        "Database"=>"ProdDB"
    );
    $conn = sqlsrv_connect($serverName, $connectionInfo);
    if ($conn === false) {
        echo "Unable to connect.</br>";
        die(var_export(sqlsrv_errors(), true));
    }

    // Backup database
    $strSQL = file_get_contents("archdata.sql");
    if (!empty($strSQL)) {
        $query = sqlsrv_query($conn, $strSQL);
        if ($query === false) {
            die(var_export(sqlsrv_errors(), true));
        } else {
            sleep(5);  
            echo "Success";
        }
    }   
?>

T-SQL (archdata.sql)

declare 
    @path varchar(100),
    @fileDate varchar(20),
    @fileName varchar(140)

SET @path = 'd:\Backup\'   
SELECT @fileDate = CONVERT(VARCHAR(20), GETDATE(), 112)  
SET @fileName = @path + 'ProdDB_' + @fileDate + '.BAK' 
BACKUP DATABASE ProdDB TO [email protected]

Jangan lupa untuk memberikan hak yang diperlukan ke folder 'D:\Backup'.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tampilkan tanggal acara berikutnya

  2. Bagaimana cara menghapus 1000 baris teratas dari tabel menggunakan Sql Server 2008?

  3. Meminta server sql tertaut

  4. Instal SQL Server 2019 di Mac

  5. Tingkat Isolasi SQL Server:Seri