gpt4 book ai didi

sql-server - 使用 T-SQL 在 Linux 上获取 sql server 默认备份文件夹

转载 作者:太空宇宙 更新时间:2023-11-04 10:01:58 25 4
gpt4 key购买 nike

对于 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 )吗?

最佳答案

我从来没有找到一种非注册表的方法来在 t-sql 中可靠地获取备份目录。我通常只是将/data/替换为/backup/,因为在默认安装时它与数据目录的关系是明确的。这不会直接回答您的问题,但如果您在安装过程中没有进行单独的目录自定义,这是一种有效的方法。

-- for one of my databases, [dharma] in my linux test-bed.
declare @bkup nvarchar(1024)
set @bkup = replace(cast(SERVERPROPERTY('instancedefaultdatapath') as nvarchar(512)),'/data/','/backup/') + 'dharma.bak'
backup database dharma to disk = @bkup

关于sql-server - 使用 T-SQL 在 Linux 上获取 sql server 默认备份文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55455019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com