using Microsoft.SqlServer.TransactSql.ScriptDom; using SQLLinter.Common; namespace SQLLinter.Infrastructure.Rules; public class DeleteWhereRule : BaseRuleVisitor, IRule { public override string Text => "Ожидается предложение WHERE для оператора DELETE: {0}"; public override void Visit(DeleteSpecification 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, name); } }