SQL Table Extractor
Lists every table a statement references and whether it is read from or written to.
Loading the tool…
Processing happens locally in your browser.
What you paste or load is processed by this page and is not uploaded to a server. Nothing is stored unless you use a control that says it stores something, and you can clear anything this site has kept from the privacy page.
How to use this tool
- Paste the query, view definition or script.
- Select List tables.
- Check the list against your catalogue — names that are missing are usually CTEs.
What sql table extractor does
When you inherit a long query, the first question is usually which tables it touches. This walks the statement and collects every name following FROM, JOIN, INTO, UPDATE and TABLE, then reports each distinct table once, with whether it is read, written, or both.
Names defined by a WITH clause appear in the list alongside real tables, because at the text level a CTE reference and a table reference look identical. That is worth knowing rather than hiding: if a name in the list does not exist in your catalogue, it is almost certainly a CTE or a derived table alias.
Frequently asked questions
Yes. Names after FROM and JOIN are recorded as read, and names after INTO, UPDATE and TABLE as written. A table doing both appears once, marked as both.
Because a reference to a CTE is written exactly like a reference to a table. If a name in the list is not in your catalogue, it is almost certainly defined by a WITH clause in the same statement.
Yes, the qualified name is kept as written, so analytics.customer and customer are reported as the two distinct references they are.