Docs
Docs /Data Management /Bulk operations
Data ManagementBulk generate

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.

⌘K → Generate queries → Select Action
Search Search actions...
Step 2 of the Generate queries palette. Arrow keys move, Enter picks, Esc goes back.

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.
  • KGenerate 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

  1. Select Target: a project, dataset or table. Search covers all three; the list shows the first 50 matches.
  2. Select Action: one of the five above.
  3. 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
123456789101112
-- 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`;
ActionStatement per tableNotes
Copy TablesCREATE TABLE … COPY …Full copy, billed as storage
Clone TablesCREATE TABLE … CLONE …Zero-copy; you pay only for what diverges
Move TablesCOPY block, then DROP TABLE blockBigQuery can’t wrap DDL in a transaction — run step 1, verify, then step 2
Drop TablesDROP TABLE IF EXISTS …No confirmation beyond running the tab
Truncate TablesTRUNCATE 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.