我可以使用 MS SQL Server 2008。是否可以编写脚本(也许使用 Powershell?)处理我所有的备份文件以从每个备份文件中删除一个(或两个)表?我在命令行上使用 7-Zip 来加密它们,所以这个脚本必须能够处理它。
我真的很想避免必须手动解密然后附加每个。那只是不会削减它,但我的技能无法让我知道是否有更好的知识。
我不要求以任何方式提供完整的解决方案。我想知道这是否真的可行,以及有人会如何首先着手去做。
我可以使用 MS SQL Server 2008。是否可以编写脚本(也许使用 Powershell?)处理我所有的备份文件以从每个备份文件中删除一个(或两个)表?我在命令行上使用 7-Zip 来加密它们,所以这个脚本必须能够处理它。
我真的很想避免必须手动解密然后附加每个。那只是不会削减它,但我的技能无法让我知道是否有更好的知识。
我不要求以任何方式提供完整的解决方案。我想知道这是否真的可行,以及有人会如何首先着手去做。
当然,这是可能的...
从批处理文件中,您可以使用
osql
.osql
从 powershell 中,您可以选择Sql Powershell或ADO.Net(SqlConnection
和朋友)。要解压缩和解密,您可以使用
-pyourpasswordhere
extract 选项。一般脚本应如下所示:
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