proc make_tbl {} {

	global base Tables Tnames tblf UbyUID UbyName Types Utypes bcpif bcpof
	global pass server

	set sqlcmd "select * from $base.dbo.sysobjects where type = 'U' order by name"
	doSQL 1
	set cols [sybCols 1]
	while {1} {
	        set line [sybNext 1]
        	if {$line == ""} {break}
		eval lassign \$line $cols
		foreach k $cols {
        	keylset Tables($name) $k [set $k]
		}
        	set Tnames($id) $name
	}

	set lun dbo
	foreach t [lsort [array names Tables]] {
		puts $bcpif "bcp $base..$t in $t.dat -Usa -P$pass -S$server -e $t.err -c -t\"\\t\""
		puts $bcpof "bcp $base..$t out $t.dat -Usa -P$pass -S$server -e $t.err -c -t\"\\t\""
		puts $tblf "\n/*	Drop and recreate table $t	*/"
		foreach k [keylkeys Tables($t)] {
			set $k [keylget Tables($t) $k]
		}	
		set un [keylget UbyUID($uid) lname]
		if {$un != $lun} {
		puts $tblf "setuser \"$un\""
		}
		set lun $un
		puts $tblf "go"
		puts $tblf "drop table $name\ngo"
		puts $tblf "create table $name ("
		set cdefs ""
		set sqlcmd "select * from syscolumns where id = $id order by number"
		doSQL 1
		set cols [sybCols 1]
		while {1} {
			set line [sybNext 1]
        		if {$line == ""} {break}
			eval lassign \$line $cols
			foreach k $cols {
			keylset Columns($colid) $k [set $k]
			}
			lappend Tcols($id) $colid
			if {![info exists Types($usertype)]} {
				set tn [keylget Utypes($usertype) name]
			} else {
				set tn [keylget Types($usertype) name]
			}
			set null ""
			if {$status == 0} {
				set null "NOT NULL"
			}  else {
				set null "null"
			}
			if {[string first "char" $tn] >= 0} {
			lappend cdefs "$name ${tn}($length) $null"
			} else {
			lappend cdefs "$name $tn $null"
			}
		}
		puts $tblf "\t[join $cdefs ",\n\t"]"
		puts $tblf ")\n\go"
		
	}

	return tbl

}
