Exemplo n.º 1
0
        public static IList <ParsedStoredProcedureIdentifier> GetExecutedProcedures(string tsqlBatch)
        {
            var parser   = new TSql140Parser(false);
            var sr       = new StringReader(tsqlBatch);
            var fragment = parser.Parse(sr, out IList <ParseError> fragmentErrors);

            var visitor = new StoredProcedureVisitor();

            fragment.Accept(visitor);

            var executedProcs = new List <ParsedStoredProcedureIdentifier>();

            foreach (var proc in visitor.ExecutedProcedures)
            {
                if (proc.ProcedureReference.ProcedureReference == null)
                {
                    //TODO: We need to handle procedure variables somehow!
                    continue;
                }
                var id        = proc.ProcedureReference.ProcedureReference.Name;
                var procedure = new ParsedStoredProcedureIdentifier(id.DatabaseIdentifier?.Value, id.SchemaIdentifier?.Value, id.BaseIdentifier.Value);
                executedProcs.Add(procedure);
            }

            return(executedProcs);
        }
Exemplo n.º 2
0
 public StoredProcedure(ParsedStoredProcedureIdentifier procedure, string defaultSchema, string defaultDatabase)
     : this(procedure.Database ?? defaultDatabase, procedure.Schema ?? defaultSchema, procedure.Name)
 {
 }