using Microsoft.SqlServer.TransactSql.ScriptDom; using SQLLinter.Common; namespace SQLLinter.Infrastructure.Rules; public class ExcessiveJoinsRule : BaseRuleVisitor { public override string Text => "Слишком много таблиц в запросе (>" + _maxJoins + "): {0}"; private const int _maxJoins = 10; public override void Visit(QuerySpecification node) { if (node.FromClause != null && node.FromClause.TableReferences.Count > _maxJoins) { AddViolation(node.FromClause, $"Количество таблиц: {node.FromClause.TableReferences.Count}"); } base.Visit(node); } }