你是否尝试过让Copilot在SSMS或Fabric中直接生成可用的T-SQL修复建议?如果每次得到的都是“可读性有待提升”“建议添加注释”这类泛泛的评论,几乎无法落地到生产环境。问题的根源在于提示词——模板化太严重,Copilot默认会启用教科书式的评审话术库。下面这套方法,能迫使它输出带有证据链、可直接粘贴的修复代码。
剔除所有通用评价句式
打开SSMS 22中的GitHub Copilot聊天窗口(快捷键Ctrl+Alt+C),在输入框最顶部第一行,【必须】粘贴这句话:
【禁止使用“可读性有待提升”“逻辑清晰”“结构合理”“建议优化”等无指向性短语】
这条指令必须放在最开头。Copilot会把前置指令当作硬约束,后添加的禁用词列表基本无效。如果跳过这一句,后续所有提示都白费——它默认启用的是教科书式评审话术库,你得到的永远是大而化之的泛泛评论。
用真实缺陷锁定评审焦点
在代码下方另起一行,写一个具体的缺陷示例:
当前WHERE子句对@customer_id未做NULL校验,传入NULL时触发“无法将null值赋给int类型”转换异常。
再补充一句:
请只围绕此类实际运行风险展开,不提风格、格式、命名等无关项。
这一步的关键在于使用“错误类型+触发条件+异常名称”三要素锁定问题域。一旦Copilot锚定到真实的报错路径,它就不会再回到模板腔里打转。换言之,你给它一个具体的靶子,它才能精准命中。
强制输出带证据链的结论
在提示末尾明确要求输出结构:
① 问题位置:精确到行号+变量名(如第8行@customer_id)
② 复现路径:给出最小输入使问题暴露(如EXEC usp_GetOrderList @customer_id = NULL)
③ 修复建议:只写一行可直接粘贴的修正代码(如IF @customer_id IS NULL RETURN)
不接受任何解释性文字。每条结论必须能对应到可执行动作。【若某行代码无实际运行风险,则跳过不评】。这条限制能迫使它放弃凑数式点评——它也知道,乱写风险点会被你一眼看穿。

说到底,让Copilot输出高质量的T-SQL修复建议,核心就三个字:别惯着。把模板话术封死,把问题域锚定,把输出格式卡死。这样得到的结果,才真正能直接粘贴到生产环境里使用。
