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

如何配置代码片段:仅在DB_ID有输入时添加sys.all_objects前的点号?

代码片段条件式点号添加实现方案

原始代码片段

SELECT 'SELECT * FROM ' + OBJECT_SCHEMA_NAME(o.object_id, DB_ID(${20:})) + '.' + name,
       *
FROM ${20/$/./}sys.all_objects o
WHERE name LIKE '%${10:hadr}%'
ORDER BY o.name;

当前问题

目前当你在DB_ID()函数的${20}位置输入数据库名时,sys.all_objects前会自动显示输入的名称并附加点号;但如果${20}为空,sys.all_objects前仍会保留一个多余的点号,不符合需求。

解决方案

修改FROM行的变量替换逻辑,使用VSCode代码片段的条件插入语法,只有当${20}有内容时才添加数据库名和点号:

SELECT 'SELECT * FROM ' + OBJECT_SCHEMA_NAME(o.object_id, DB_ID(${20:})) + '.' + name,
       *
FROM ${20:+$20.}sys.all_objects o
WHERE name LIKE '%${10:hadr}%'
ORDER BY o.name;

语法说明

${20:+$20.} 是VSCode代码片段的条件语法:

  • ${variable:+content} 表示:当variable(这里是${20})被填入内容时,才会插入content部分
  • 这里的content是$20.,即输入的数据库名加上点号;如果${20}为空,该部分会被忽略,直接显示sys.all_objects

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:30:54