Мне доступен MS SQL Server 2008. Можно ли создать сценарий (возможно, с помощью Powershell?) Обработки всех моих файлов резервных копий, чтобы удалить таблицу (или две) из каждого из них? Я использовал 7-Zip в командной строке, чтобы зашифровать их, поэтому этот скрипт должен уметь это обрабатывать.
Я действительно хотел бы избежать расшифровки, а затем прикрепления каждого вручную. Это просто не поможет, но мои навыки не позволяют мне знать, есть ли что-то лучше.
Я ни в коем случае не прошу полного решения. Я хотел бы знать, возможно ли это на самом деле и как кто-то может сделать это в первую очередь.
Конечно, это возможно ...
Из командного файла вы можете использовать osql
. Из PowerShell у вас есть выбор osql
, Sql Powershell или ADO.Net (SqlConnection
и друзья).
Чтобы распаковать и расшифровать, вы можете использовать -pyourpasswordhere
вариант с выпиской.
Общий сценарий должен выглядеть так:
RESTORE DATABASE dbname FROM DISK = 'path to temp bak file' WITH MOVE 'datafile name' to 'temp file path\data.mdf', MOVE 'logfile name' to 'temp file path\log.ldf', RECOVERY, STATS=10
)USE dbname; DROP TABLE tableName; DROP TABLE tableName2; USE master;
)BACKUP DATABASE dbname TO DISK = 'path to new bak file' WITH COPY_ONLY, STATS=10
- COPY_ONLY
может использоваться, если восстановление файла журнала не используется для ускорения резервного копирования и уменьшения размера)