Утилита sqlcmd

Написано для себя.
Утилита sqlcmd позволяет вводить операторы Transact-SQL, системные процедуры и файлы сценариев в командной строке, в редакторе запросов в режиме SQLCMD, в файле сценария Windows или на шаге задания операционной системы (Cmd.exe) SQL Server. Работа агента. Эта утилита использует OLE DB для выполнения пакетов Transact-SQL. Ссылка на скачку: https://docs.microsoft.com/ru-ru/sql/tools/sqlcmd-utility?view=sql-server-ver15
Коннектимся:
sqlcmd -S LOCALHOST\SQLEXPRESS -E
Подключаем БД:
USE db_name
GO
Бэкапаем:
sqlcmd -S localhost -U SA -Q "BACKUP DATABASE [db] TO DISK = N'C:/Data/db.bak' WITH NOFORMAT, NOINIT, NAME = 'demodb-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
Восстанавливаем БД:
sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [db] FROM DISK = N'C:/Data/db.bak' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5"

Ошибка транзакции SQL: текущая транзакция не может быть зафиксирована

Полная ошибка выглядит так:
Ошибка транзакции SQL: текущая транзакция не может быть зафиксирована и не может поддерживать операции, которые записываются в файл журнала.
Ошибку поймал при работе с БД клиента. Сделал следующее: проверил БД через DBCC, затем переиндексировал БД, а затем поменял XACT_ABORT.
SET XACT_ABORT OFF
Последнее помогло.