sql >> データベース >  >> RDS >> Sqlserver

SQLServerコマンドラインバックアップステートメント

    SQLCMD SQL Serverクライアントツールのユーティリティ:

    バックアップ:

    echo off
    cls
    echo -- BACKUP DATABASE --
    set /p DATABASENAME=Enter database name:
    
    :: filename format Name-Date (eg MyDatabase-2009.5.19.bak)
    set DATESTAMP=%DATE:~-4%.%DATE:~7,2%.%DATE:~4,2%
    set BACKUPFILENAME=%CD%\%DATABASENAME%-%DATESTAMP%.bak
    set SERVERNAME=your server name here
    echo.
    
    sqlcmd -E -S %SERVERNAME% -d master -Q "BACKUP DATABASE [%DATABASENAME%] TO DISK = N'%BACKUPFILENAME%' WITH INIT , NOUNLOAD , NAME = N'%DATABASENAME% backup', NOSKIP , STATS = 10, NOFORMAT"
    echo.
    pause
    

    復元:

    echo off
    cls
    echo -- RESTORE DATABASE --
    set /p BACKUPFILENAME=Enter backup file name:%CD%\
    set /p DATABASENAME=Enter database name:
    set SERVERNAME=your server name here
    sqlcmd -E -S %SERVERNAME% -d master -Q "ALTER DATABASE [%DATABASENAME%] SET SINGLE_USER WITH ROLLBACK IMMEDIATE"
    
    :: WARNING - delete the database, suits me
    :: sqlcmd -E -S %SERVERNAME% -d master -Q "IF EXISTS (SELECT * FROM sysdatabases WHERE name=N'%DATABASENAME%' ) DROP DATABASE [%DATABASENAME%]"
    :: sqlcmd -E -S %SERVERNAME% -d master -Q "CREATE DATABASE [%DATABASENAME%]"
    
    :: restore
    sqlcmd -E -S %SERVERNAME% -d master -Q "RESTORE DATABASE [%DATABASENAME%] FROM DISK = N'%CD%\%BACKUPFILENAME%' WITH REPLACE"
    
    :: remap user/login (http://msdn.microsoft.com/en-us/library/ms174378.aspx)
    sqlcmd -E -S %SERVERNAME% -d %DATABASENAME% -Q "sp_change_users_login 'Update_One', 'login-name', 'user-name'"
    sqlcmd -E -S %SERVERNAME% -d master -Q "ALTER DATABASE [%DATABASENAME%] SET MULTI_USER"
    echo.
    pause
    


    1. MySQLデータベースで非ASCII文字を許可する

    2. mysqlでテキストタイプのデフォルト値を設定する方法

    3. ターミナルからMySQLを使用してデータベースをインポートするにはどうすればよいですか?

    4. MySQLデータベース構造をExcelファイルにエクスポートするにはどうすればよいですか?