public IEnumerable <string> GetParameterNames(string query) { var tokens = new SqlTokenizer(query).ToArray(); var parsed = SqlTokenizer.Parse(tokens); var declares = new SqlDeclares(parsed); var declared = new HashSet <string>(declares.Names ?? Enumerable.Empty <string>()); return(new SqlTokenizer(query) .OfType <SqlLiteral>() .Where(t => t.Text[0] == '@' && !t.Text.StartsWith("@@") && !declared.Contains(t.Text)) .Select(t => t.Text.Substring(1)) .Distinct()); }
public IEnumerable<string> GetParameterNames(string query) { var tokens = new SqlTokenizer(query).ToArray(); var parsed = SqlTokenizer.Parse(tokens); var declares = new SqlDeclares(parsed); var declared = new HashSet<string>(declares.Names ?? Enumerable.Empty<string>()); return new SqlTokenizer(query) .OfType<SqlLiteral>() .Where(t => t.Text[0] == '@' && !t.Text.StartsWith("@@") && !declared.Contains(t.Text)) .Select(t => t.Text.Substring(1)) .Distinct(); }