You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在T-SQL的CONCAT函数中使用通配符匹配备份文件名

数据库恢复脚本通配符使用问题

我有以下备份文件:

WH_BEE_FULL_20241014_170853_1.bak
WH_BEE_FULL_20241014_170853_2.bak
WH_BEE_FULL_20241014_170853_3.bak
WH_BEE_FULL_20241014_170853_4.bak
WH_BEE_FULL_20241014_170853_5.bak
WH_BEE_FULL_20241014_170853_6.bak

我想在T-SQL恢复脚本的文件路径指定部分,结合CONCAT函数使用通配符(类似*),用通配符替代文件名中的170853部分,忽略该位置的任意字符模式。以下是我编写的完整数据库恢复T-SQL脚本,重点关注CONCAT函数所在区域:

DECLARE @sql nvarchar(max);
DECLARE @maxInputFiles BIGINT = 6;

WITH L1 AS (
    SELECT *
    FROM (VALUES (1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1)) n(n)
),
L2 AS (
    SELECT 1 n
    FROM L1 AS a, L1 AS b
)
SELECT @sql = N'
RESTORE DATABASE [WH_BEE]
FROM ' +
  STRING_AGG(
    CONCAT('
DISK = N''F:\Test\WH_BEE_FULL',
      '_',
      convert(varchar(8),cast(GETDATE()-3 as date),112),
      '_',
      '%',
      '_',
      g.value,        
      '.bak'''
    ),
    ', '
  ) + N'
WITH REPLACE, FILE = 1, 
MOVE N''WH_Data1'' TO N''F:\data2022\WH_BEE.MDF'',  
MOVE N''WH_Data2'' TO N''F:\data2022\WH_BEE_1.NDF'',  
MOVE N''WH_Log'' TO N''G:\log2022\WH_BEE.LDF'', STATS = 5;
'
FROM (
    SELECT TOP(@maxInputFiles)
      ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS value
    FROM L2
) AS g;


EXEC master.sys.sp_executesql @sql;

内容的提问来源于stack exchange,提问作者Java

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 04:42:12