using Microsoft.SqlServer.TransactSql.ScriptDom; using SQLLinter.Common; namespace SQLLinter.Infrastructure.Rules; public class UpdateWhereRule : BaseRuleVisitor, IRule { public override string Text => "Ожидается выражение WHERE для оператора UPDATE: {0}"; public override void Visit(UpdateSpecification node) { if (node.WhereClause != null) { return; } string name = string.Join("", node.Target.ScriptTokenStream .Skip(node.Target.FirstTokenIndex) .Take(node.Target.LastTokenIndex - node.Target.FirstTokenIndex + 1) .Select(t => t.Text) ); AddViolation(node.Target, name); } }