I agree with genius_at_work. This is completely scriptable.
Here is my tested code
It isnt completely scriptable, and you didnt test your code overly hard.
bset &binvar 1000000 0 | hadd -mb table1 item1 &binvar
var %crlf = $crlf | hadd -m table1 item2 %crlf
var %num = 99 | hadd -mz table1 item3 %num
var %true = $true | hadd -mu10 table1 item4 %num
Not one of these items survive your code.
* While i dont really have a need for this command, i dont think its unworthy of a command.
* Of course if your working on your on hashtables, you could always just work your own naming system out, like using....
%hashtable.name then just
/set %hahstable.name table1 and later
/set %hahstable.name table2 or more complexely using a custom alias like $hashtable.name and return the active table.