Files
SQLLint/SQLLinter/Infrastructure/Rules/UpdateWhereRule.cs

29 lines
728 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, name);
}
}