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

如何在SSMS中基于现有列内容创建SQL新列MessageCode

在SSMS中提取Action列的MessageCode并生成目标表

方式一:直接查询生成包含MessageCode的结果集

如果只是需要查看数据,不需要永久修改表结构,可以用JSON_VALUE函数直接提取JSON中的MessageCode值:

SELECT 
    ID,
    Title,
    Enabled,
    JSON_VALUE(Action, '$[0].Results[0].MessageCode') AS MessageCode,
    Action AS Actions
FROM 你的表名;

路径说明:

  • $[0]:定位到Action列JSON数组的第一个元素
  • .Results[0]:定位到该元素下Results数组的第一个元素
  • .MessageCode:提取对应位置的数字值

方式二:新增永久列并填充数据

如果需要把MessageCode作为表的固定列:

  1. 新增MessageCode列
ALTER TABLE 你的表名
ADD MessageCode INT;
  1. 填充列数据
UPDATE 你的表名
SET MessageCode = JSON_VALUE(Action, '$[0].Results[0].MessageCode')
-- 过滤掉无效JSON或空值的行,避免报错
WHERE Action IS NOT NULL AND ISJSON(Action) = 1;

注意事项

  • 该方案适用于SQL Server 2016及以上版本(这些版本支持JSON函数)
  • 如果Action列的JSON结构存在多个Results元素,需要用OPENJSON进行多行解析,示例语句基于你提供的单元素结构编写
  • 执行更新前建议先备份数据,或用SELECT语句验证提取结果是否正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 01:21:04