尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Paste a SQL script, get back a backup script. Pixel-art UI, runs entirely in your
browser — no server, no install, no network calls.
Or locally: double-click index.html. That's it.
(The Press Start 2P / VT323 pixel fonts come from Google Fonts. Offline they fall
back to a monospace font — everything else still works.)
WHERE clauses are dropped on purpose — a backup takes the whole table.查看完整 README ↗Paste a SQL script, get back a backup script. Pixel-art UI, runs entirely in your browser — no server, no install, no network calls.
Online: https://pauljohnfabic.github.io/sqldex-backup/
Or locally: double-click index.html. That's it.
(The Press Start 2P / VT323 pixel fonts come from Google Fonts. Offline they fall back to a monospace font — everything else still works.)
In:
select * from tc.table1 where DOCNO = @apvv
select * from tx.table2 where DOCNO = @apvv
select * from tc.table3 where ID = @apvv
if 1<>1
begin
select * from tx.table4
end
Out:
SELECT * INTO bup.table1_10012026_1614 FROM tc.table1
SELECT * INTO bup.table2_10012026_1614 FROM tx.table2
SELECT * INTO bup.table3_10012026_1614 FROM tc.table3
SELECT * INTO bup.table4_10012026_1614 FROM tx.table4
WHERE clauses are dropped on purpose — a backup takes the whole table.
| Control | What it does |
|---|---|
| BACKUP SCHEMA | Target schema for the backup tables. Default zbak. Blank = no prefix. |
| STAMP FORMAT | MMDDYYYY_HHMM (default), plus seconds / ISO-ish / short variants. |
| STAMP | AUTO (default) keeps it locked to the current clock — it ticks while the tab is open and is re-read at the moment output is generated, so you never type a date. Untick AUTO to type your own. NOW snaps back to auto. |
| KEYWORD | INTO (valid T-SQL, default) or from if you want the literal select * from X from Y shape. |
| DE-DUPE TABLES | Same table twice in the paste → one backup line. |
| INCLUDE JOIN TABLES | Off by default — only the main tables (FROM + tables being updated/deleted/inserted) are backed up. Tick it to also back up tables reached via JOIN. A table that is being updated is always backed up, even when it sits in a JOIN. |
| UPPERCASE KEYWORDS | SELECT * INTO … FROM … |
| NO TIMESTAMP SUFFIX | Drop the _stamp entirely. |
CTRL+ENTER re-generates. COPY puts the output on the clipboard and logs the
run to history.
select … from schema.table where … — one per line or spread over several linesupdate x set …, delete [from] x, insert [into] x,
merge [into] x, truncate table x — so a fix script made only of UPDATEs works.
update a set … from tx.X a backs up tx.X, not the alias a.[bracketed].[names with spaces] and "quoted" identifiersdb.schema.table) — the source keeps the db prefixselect * from table4)JOINed tables (when INCLUDE JOIN TABLES is ticked)Ignored: -- and /* */ comments, string literals, GO, DECLARE, BEGIN TRAN /
COMMIT TRAN, continuation lines like and x = @doc, table-valued function calls,
#temp tables and @table variables. Anything it can't read is listed under a yellow NOT RECOGNISED
warning instead of being silently dropped.
Every SAVE / COPY logs the run to localStorage (last 200). Each entry can
be copied, loaded back into the editor, or deleted. LOAD pins that run's original
stamp (turns AUTO off) so you get the exact script back, not a re-stamped one.
.json file of the whole history.json back in (dedupes by id)Storage is per-browser and per-machine. Nothing leaves your computer.
index.html markup
styles.css pixel theme
parser.js pure logic — parsing + generation (no DOM)
app.js UI wiring, history, clipboard, import/export
test-parser.js node test-parser.js (48 assertions, no deps)
Stored procedures. Today an exec/proc line lands in the NOT RECOGNISED warning
rather than producing a backup — table-only for now, by design.