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

如何获取SQL PROD schema下各含timestamp字段表的最新最大时间戳

解决方案

你当前脚本仅生成了查询最大时间戳的SQL文本,并未实际执行这些语句获取返回值,因此无法得到真实的时间戳结果。可通过动态SQL批量执行生成的查询语句,直接得到期望输出。

修改后完整脚本(适用SQL Server 2017及以上版本)

WITH CTE AS
(
    SELECT
        CONCAT(schema_name(t.schema_id), '.',t.name) AS table_name,
        c.name AS time_stamp
    FROM
        sys.tables t
    INNER JOIN 
        sys.columns c ON c.object_id = t.object_id
    WHERE
        schema_name(t.schema_id) = 'PROD' 
        AND c.name = 'timestamp'
)
SELECT  
    CONCAT('SELECT ''', table_name, ''' AS tName, MAX(', time_stamp, ') AS tStamp FROM ', table_name) AS sql_part
INTO #TEMP_TABLE
FROM CTE 

DECLARE @sql NVARCHAR(MAX)
-- 将所有单表查询语句用UNION ALL拼接为一条完整SQL
SELECT @sql = STRING_AGG(sql_part, ' UNION ALL ')
FROM #TEMP_TABLE

DROP TABLE #TEMP_TABLE

-- 执行动态SQL直接返回最终结果
EXEC sp_executesql @sql

低版本SQL Server兼容方案

如果你的SQL Server版本低于2017,不支持STRING_AGG函数,可将拼接@sql的部分替换为以下写法:

SELECT @sql = STUFF((
    SELECT ' UNION ALL ' + sql_part
    FROM #TEMP_TABLE
    FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1, 10, '')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:45:03