Bulk operations
Copy, clone, move, drop or truncate many tables at once. Pick a project, dataset or table, choose an action, filter by name — Querylab.io writes the SQL into a new tab and you decide whether to run it.
Nothing runs from the palette. Every action produces a script in a new query tab named after it (Drop 12 tables), so a mistake is a tab you close, not a table you lose.
Opening it
- Right-click a project, dataset or table in the schema tree → Bulk Generate. The target step is skipped.
- ⌘ K → Generate queries, then search for a target.
There is no multi-select in the tree — the set of tables is the target plus a name filter.
The three steps
- Select Target: a project, dataset or table. Search covers all three; the list shows the first 50 matches.
- Select Action: one of the five above.
- Filter: a pattern matched against table names under the target.
*matches anything,?one character; a pattern with neither is treated as a substring (backup=*backup*). Empty matches everything. The footer shows Preview: 14 tables match as you type; Enter generates.
What you get
-- Clone 3 tables from `ace-analytics.warehouse` | Filter: dim_* -- Lightweight zero-copy clone (shares storage with source) -- Placeholders selected - type to replace all. Or: select <target_dataset>, Ctrl+Shift+L CREATE TABLE `<target_dataset>.dim_customer` CLONE `ace-analytics.warehouse.dim_customer`; CREATE TABLE `<target_dataset>.dim_product` CLONE `ace-analytics.warehouse.dim_product`; CREATE TABLE `<target_dataset>.dim_date` CLONE `ace-analytics.warehouse.dim_date`;
| Action | Statement per table | Notes |
|---|---|---|
| Copy Tables | CREATE TABLE … COPY … | Full copy, billed as storage |
| Clone Tables | CREATE TABLE … CLONE … | Zero-copy; you pay only for what diverges |
| Move Tables | COPY block, then DROP TABLE block | BigQuery can’t wrap DDL in a transaction — run step 1, verify, then step 2 |
| Drop Tables | DROP TABLE IF EXISTS … | No confirmation beyond running the tab |
| Truncate Tables | TRUNCATE TABLE … |
For Copy, Clone and Move the tab opens with every <target_dataset> placeholder already selected as a multi-cursor: type once and all of them change. If you lose the selection, select one placeholder and press ⌘⇧L (CtrlShiftL on Windows and Linux).
Checking before you move or drop
To find out whether two tables actually differ before you move or drop, see Data compare. Per-table CREATE TABLE DDL for a single table is in its details tab, not here.