在线数据库管理工具(db007) v1.5

2019-01-14 08:01:18于丽

'================================================================== 输出表结构
function getsql(table)
    on error resume next
    getsql = "-- 表结构 " & table & " 的SQL语句。" & chr(10)
    dim primary,primarykey
    Set primary = Conn.OpenSchema(adSchemaPrimaryKeys,Array(empty,empty,table))
    if primary("COLUMN_NAME") <> "" then
        primarykey = primary("COLUMN_NAME")
    end if

    primary.Close
    set primary = nothing

    tbl_struct = "CREATE TABLE [" & table & "] ( " & chr(10)
    sql = "SELECT * FROM " & table
    Set rs = Conn.Execute(sql)
    if err = 0 then
        for i = 0 to rs.fields.count-1
           tbl_struct = tbl_struct & "[" & rs(i).name & "] "
           typs = typ(rs(i).type)
           if typs = "VARCHAR" or typs = "BINARY" or typs = "CHAR" then
             tbl_struct = tbl_struct & typs & "(" & rs(i).definedsize & ")"
           else
             tbl_struct = tbl_struct & typs & " "
           end if
           attrib = rs(i).attributes
           if (attrib and adFldIsNullable) = 0 then
             tbl_struct = tbl_struct&" NOT NULL"
           end if
           if rs(i).Properties("ISAUTOINCREMENT") = True then
             tbl_struct = tbl_struct & " IDENTITY"
           end if
           tbl_struct = tbl_struct & "," & chr(10)
        next
        if primarykey <> "" then
            tbl_struct = tbl_struct & "PRIMARY KEY ([" & primarykey & "]));"
        else
            len_of_sql = Len(tbl_struct)
            tbl_struct = Mid(tbl_struct,1,len_of_sql-2)
            tbl_struct = tbl_struct & ");"
        end if
    else
        tbl_struct = "CREATE TABLE [" & table & "];"
    end if
    getsql = getsql & tbl_struct & chr(10) & chr(10)
end function