X
    Categories: My_Note

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: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
Related Post