Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Php gọi tập lệnh cơ sở dữ liệu sao lưu sqlserver, tệp sao lưu được tạo và sau đó xóa

Đây là một giải pháp phù hợp với tôi:

  • thực thi sqlsrv_configure("WarningsReturnAsErrors", 0); để thay đổi cài đặt xử lý lỗi.
  • loại bỏ WITH STATS = 1 từ BACKUP DATABASE tuyên bố.

Tôi có thể tái tạo sự cố này bằng một trường hợp thử nghiệm sử dụng Apache 2.4, PHP 7.1.12 và Microsoft PHP Driver cho SQL Server (php_sqlsrv_71_ts_x86.dll, phiên bản 4.3). Sự khác biệt duy nhất là ví dụ sử dụng Trình điều khiển SQLSRV (Tôi không thể sử dụng Trình điều khiển PDO_SQLSRV trong môi trường thử nghiệm của mình).

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]

Đừng quên cấp các quyền cần thiết cho thư mục '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. Tìm các giá trị không phải số trong một cột trong SQL Server

  2. Sử dụng OBJECTPROPERTY () để xác định xem một đối tượng có phải là dạng xem trong SQL Server hay không

  3. Nhật ký giao dịch SQL Server - Phần 1

  4. Giải pháp cho DATEDIFF () Bỏ qua SET DATEFIRST trong SQL Server (Ví dụ T-SQL)

  5. Làm cách nào tôi có thể sử dụng một nhóm kết nối mssql duy nhất trên nhiều tuyến đường trong ứng dụng web Express 4?