MSSQL 使用 sqlcmd 列出所有資料庫名稱

Windows 的 MSSQL 想要列出所有資料庫名稱,然後再執行備份或者其他命令,可以怎麼做呢?

MSSQL 使用 sqlcmd 列出所有資料庫名稱

MSSQL 想要列出所有資料庫的名字,可以使用:SELECT name FROM master.dbo.sysdatabases

跟 sqlcmd 搭配,然後要將資料庫名稱列出來,可以用此命令:

  • for /f %%a in ('sqlcmd -U sa -P YOUR_PASSWORD -Q "SELECT name FROM master.dbo.sysdatabases"') do set DbName=%%a
    • 列出來會如下:(會有前面兩行 name 和 "--------------",master、tempdb 是內建的,平常看不到)
      • name
      • ----------------------------------------------
      • master
      • tempdb
      • TEST

想要將各個資料庫做備份,可以使用下述:

  • for /f "skip=2 eol=(" %%a in ('sqlcmd -U sa -P YOUR_PASSWORD -Q "SELECT name FROM master.dbo.sysdatabases"') do sqlcmd -S localhost -U sa -P YOUR_PASSWORD -Q "Backup Database %%a To Disk='%%a.bak' WITH INIT, SKIP"
    • skip=2 是把 name 和 "----" 跳過,然後會從資料庫名稱開始一個一個執行下來~~

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料