Files
SQLLint/SQLLinter/Infrastructure/Rules/DeleteWhereRule.cs
FrigaT edc4d5c087
All checks were successful
CI / build-test (push) Successful in 31s
Release / pack-and-publish (release) Successful in 34s
Поправлены правила. Исправлен параметр формирования деталировки
2025-12-29 02:19:30 +03:00

26 lines
736 B
C#

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.Target, name);
}
}