Sql-server – Restore ALL databases with sqlcmd in SQL Server (Express, Docker, 2017)

sql serversql-server-2017sqlcmd

These documentation articles

https://docs.microsoft.com/en-us/sql/linux/tutorial-restore-backup-in-sql-server-container?view=sql-server-2017

and

https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-backup-and-restore-database?view=sql-server-2017

Tell us how to restore individual databases. I want to restore all databases in the file list. Is there a way to do this programmatically from within the sqlcmd without involving bash?

Best Answer

Based on what you want I would do the following:

  1. Create two files - List.txt (with the list of DBs you want to restore) and DBRestore.bat with sqlcmd command to run a stored procedure 'DBRestore' inside SQL Server
  2. Create a stored procedure 'DBRestore' which loads into SQL Server temp table the list from the LIST.txt and processes it - reads DB name one by one and restores them