proc make_key {} {

	global base keyf

	set sqlcmd "select keytype = substring(v.name, 1, 10), user_name(o.uid), \
	o.id, o.name, related_object = k.depid, r_object_name = object_name(k.depid), \
        col_name(k.id, key1),col_name(k.id, key2),col_name(k.id, key3), \
        col_name(k.id, key4),col_name(k.id, key5),col_name(k.id, key6), \
        col_name(k.id, key7),col_name(k.id, key8),col_name(k.depid, depkey1), \
        col_name(k.depid, depkey2),col_name(k.depid, depkey3), \
        col_name(k.depid, depkey4),col_name(k.depid, depkey5), \
        col_name(k.depid, depkey6),col_name(k.depid, depkey7), \
        col_name(k.depid, depkey8) from dbo.syskeys k, master.dbo.spt_values v,  \
        dbo.sysobjects o where k.type = v.number and \
        k.id = o.id and (o.type = 'U'  or o.type = 'V')and v.type = 'K' \
        order by keytype desc, o.name "
	
	doSQL 1

	while {1} {

		set line [sybNext 1]
		if {$line == ""} {break}

		set keys ""
		set dkeys ""

		lassign $line ktyp own kid tname relid relnam k1 k2 k3 k4 k5 k6 k7 k8 dk1 dk2 dk3 dk4 dk5 dk6 dk7 dk8
#		puts stderr "KEY $ktyp on $tname"
		loop i 1 9 {
			if {[set k$i] != ""} {
				lappend keys [set k$i]
			}
			if {[set dk$i] != ""} {
				lappend dkeys [set dk$i]
			}
		}
		if {$ktyp == "primary"} {
			puts $keyf "sp_primarykey $tname, [join $keys ,]\ngo"
		} else {
#			puts stderr "HELP, a foreign key!"
#			puts stderr "Foreign oid $relid, name $relnam"
#			puts stderr "foreign keys $dkeys"
			puts $keyf "sp_foreignkey $tname, $relnam, [join $dkeys ,]\ngo"
		}
	}


	return key


}
	
