Files
SQLLint/SQLLinter/Infrastructure/Rules/UpdateWhereRule.cs
FrigaT 507c466b5d
All checks were successful
CI / build-test (push) Successful in 35s
Release / pack-and-publish (release) Successful in 34s
Доработаны правила
2025-12-29 01:40:25 +03:00

29 lines
735 B
C#

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);
}
}