对于 Windows 上的 SQL Server 来获取默认备份文件夹,我们可以使用 master.dbo.xp_instance_regread
:
DECLARE @HkeyLocal nvarchar(18) = N'HKEY_LOCAL_MACHINE';
DECLARE @MSSqlServerRegPath nvarchar(31) = N'SOFTWARE\Microsoft\MSSQLServer';
DECLARE @InstanceRegPath sysname = @MSSqlServerRegPath + N'\MSSQLServer';
DECLARE @BackupDirectory nvarchar(512)
if 1=isnull(cast(SERVERPROPERTY('IsLocalDB') as bit), 0)
SET @BackupDirectory=cast(SERVERPROPERTY('instancedefaultdatapath') as nvarchar(512))
else
EXEC master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'BackupDirectory', @BackupDirectory OUTPUT;
SELECT @BackupDirectory AS SQLServerBackupDirectory;
但对于 Linux 来说它不起作用。任何人都可以帮助使用 T-SQL 方法吗(我只找到 SSMS 解决方案 here )?
最佳答案
在 SQL Server v2019 中,Microsoft 增强了 ServerProperty 以公开 InstanceDefaultBackupPath。这里也谈到了同样的事情( https://learningintheopen.org/2020/06/08/sql-server-configuration-default-directories/ )
关于sql-server - 使用 T-SQL 在 Linux 上获取 sql server 默认备份文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55455019/