Aus*_*tin 8 sql-server backup collation instance restore
我在一家公司工作,该公司定期从客户那里接收大型 SQL 数据库备份以用于支持目的。我们支持多个 SQL 版本和排序规则,但目前必须手动确认我们客户端的 SQL 版本,然后才能恢复到正确的 SQL 实例。我想知道是否有办法自动化这个过程。
我期待:
无需完全恢复到可能不正确的 SQL 实例,由于其大小,这需要大量时间。(也许是零碎的恢复?)
Sol*_*zky 18
您可以通过使用RESTORE HEADERONLY命令检查备份文件来获取一些信息。链接的文档解释了所有结果集字段的含义和含义,但您要查找的字段应该是:
[SoftwareVersionMajor]
[SoftwareVersionMinor]
区别)[SoftwareVersionMinor]
因为该版本的该值应为“50”,否则为所有其他版本的“00”(到目前为止)[Collation]
例如:
RESTORE HEADERONLY FROM DISK =
N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\Backup\master.bak'
Run Code Online (Sandbox Code Playgroud)
这将返回一个结果集。如果您从应用程序代码中执行此操作,那么获取这些特定字段应该相当容易。如果您从 T-SQL 执行此操作,并且需要以编程方式对其进行操作,则您需要:
RESTORE HEADERONLY
在INSERT INTO ... EXEC(...)
构造中执行命令:
INSERT INTO #TempBackupInfo
EXEC(N'RESTORE HEADERONLY FROM DISK =
N''C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\Backup\master.bak'';');
Run Code Online (Sandbox Code Playgroud)