Tag: SQL

  • 定期將遠端SQL SERVER資料庫備份還原到本地端SQL SERVER

    以下為透過Windows網路芳鄰實現自動化異機備份及還原的方案。(網際網路的情境可搭配VPN實現)

    1. 在遠端設定排程以自動化備份資料庫到固定位置,這裡可透過維護計畫或是批次檔搭配工作排程器來實現。
    2. 參考以下批次檔指令,將遠端的備份檔案複製到本地端,再還原到SQL SERVER。

    net use \\{SOURCE_SERVER_IP} /user:{SOURCE_SERVER_ACCOUNT} {SOURCE_SERVER_PASSWORD}
    copy /y "\\{DBBACKUP_FILE_FULL_NETWORK_SOURCE_PATH}" "{DBBACKUP_FILE_FULL_LOCAL_TARGET_PATH}"
    SqlCmd -U {SQL_SERVER_ACCOUNT} -P {SQL_SERVER_PASSWORD} -Q "ALTER DATABASE {DB_NAME} SET single_user WITH rollback immediate"
    SqlCmd -U {SQL_SERVER_ACCOUNT} -P {SQL_SERVER_PASSWORD} -Q "RESTORE DATABASE {DB_NAME} FROM DISK='{DBBACKUP_FILE_FULL_LOCAL_TARGET_PATH}' WITH REPLACE"
    SqlCmd -U {SQL_SERVER_ACCOUNT} -P {SQL_SERVER_PASSWORD} -Q "ALTER DATABASE {DB_NAME} SET multi_user"
    ::[option command for restore source db account] SqlCmd -U {SQL_SERVER_ACCOUNT} -P {SQL_SERVER_PASSWORD} -Q "USE {DB_NAME};EXEC sp_change_users_login 'Update_One','{ACCOUNT_MAP_ON_THE_SOURCE_DB}','{ACCOUNT_MAP_ON_THE_TARGET_DB}'"
    del "{DBBACKUP_FILE_FULL_LOCAL_TARGET_PATH}"
  • SSRS – [問題]無法載入 SQLPDW 延伸模組

    問題原因

    預設註冊於 Reporting Services 設定檔的 Teradata 延伸模組,沒有可適用於目前 SQL Server 版本的組件。

    處理方式

    • 如果用不到 Teradata 延伸模組的話,可直接在安裝目錄內的 rstrportserver.config 檔案中註解掉 TERADATA 的 Extension
    • 到 Teradata 官網下載安裝大於 12 版的.Net Data Provider
  • SQL Server – 修改電腦名稱後的處置

    USE master

    sp_dropserver '<original computer name>';
    GO
    sp_addserver '<new computer name>', local;
    GO
    ALTER LOGIN "<original computer name>\<windows login account>"
    WITH NAME="<new computer name>\<windows login account>"
  • SQL Server – Mapping登入帳號到資料庫內的帳號

    SQL Server 實體和其掛載的資料庫,都有個別的帳號管理清單。如果掛載的資料庫是在該SQL Server建置的話,資料庫的帳號和SQL Server實體的帳號預設情況下便會自動建立對應。

    以Aras Innovator系統為例,由於資料庫的建立預設是用Innovator而不是dbo,因此在做備份資料庫還原時,就必須處理。

    (more…)

  • SQL Server – 好用的TRY_CONVERT()

    SQL Server 每次改版或多或少都會增加一些有助於程式開發的指令,而自SQL Server 2012之後,新增了延伸自既有CONVERT()指令的TRY_CONVERT()。

    (more…)

  • SQL Server – 2012, 2014 DB Link to 2000

    Microsoft 自 SQL Native Client 11後便不再支援SQL Server 2000的連線了,也因此導致使用SQL Native Client 11的SQL Server 2012、2014無法直接用DB Link連結SQL Server 2000。

    (more…)

  • SQL Server-Datetime 轉換字串

    以下參考微軟 Microsoft Docs 網站列舉出常用的轉換SQL指令:

    • yyyy/MM/dd
      • CONVERT(char(10), @DATETIME, 111)
    • yyyy/MM/dd HH:mm:ss
      • REPLACE(CONVERT(char(19), @DATETIME, 120), ‘-‘, ‘/’)
    • yyyy-MM-dd
      • CONVERT(char(10), @DATETIME, 120)
    • yyyy-MM-dd HH:mm:ss
      • CONVERT(char(19), @DATETIME, 120)