打印本文 打印本文  关闭窗口 关闭窗口
SQL SERVER结构浏览器
作者:采集员 文章来源:来源于网络 点击数: 更新时间:2005/9/10 13:06:33
从老外那儿转帖过来的

很酷,只要修改几个参数就可以了,很有帮助

<%@ LANGUAGE = JScript %>
<%
        var ConnStr= "DSN=admin";    //
    var UserLogin= "sa";        // input empty Login and Password,
    var UserPassword= "";    // if your DSN works via WinNT trust connection
    var CharSet= "gb2312";        // as sample "windows-1251"
    var PgSize= 10;    
%>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=<%=CharSet%>">
<title>MS SQL Structure Viewer Version 1.2</title>
</head>
<body bgcolor=#2f2f2f link=#000000 vlink=#000000 alink=#000000 topmargin=1 leftmargin=1>
<table width='100%' bgcolor=gray cellpadding=0 cellspacing=0><td>
<table width='100%' cellpadding=0 cellspacing=1>
<tr><td align=center>
    <font color=white size=+1><b>MS SQL WebTools &gt;&gt; Table Structure Viewer</b></font></td>
    <td align=right>
    <font color=black><small><b>written by
    <a href="mailto:little@ivc.tagmet.ru">
    <font color=black><small><b>Alexander Tkalich</b></small></a></b></small></font>
</td></tr>
</table>
</td>
</table>
<p>
<%
var trColor1= "#7f9faf", trColor2= "#bfcfd7";
var trColor= trColor1;

function isDef( Value){
    if( Value== ( Value+ "")) return true;
    return false;
}

function QOutSelect( Conn, Name, Value, FirstName, FirstValue, SQL, SSize){
    var Rs= Conn.Execute( SQL);
    Response.Write( "<select name='"+ Name+ "' size="+ SSize+ ">");
    if( FirstName!= "")
        Response.Write( "<option value='"+ FirstValue+ "'>"+ FirstName);
    for( ; !Rs.EOF; Rs.MoveNext()){
        Id= Rs( 0);
        Nm= Rs( 1);
        if( Value== ""+ Id) S= 'selected'; else S= ';
        Response.Write( "<option value='"+ Id+ "' "+ S+ ">"+ Nm+ " ");
    }
    Response.Write( "</select>");
}

var S, DbName, TbName, Tbl, Row;
if( !isDef( DbName= Request.Form( "DbName")))
    DbName= Request.QueryString( "DbName");
if( !isDef( TbId= Request.Form( "TbId")))
    TbId= Request.QueryString( "TbId");
Tbl= Request.QueryString( "Tbl");
Row= Request.QueryString( "Row")/ 1;
%>

<center>

<%
var Conn= Server.CreateObject("ADODB.Connection");
Conn.Open( ConnStr, UserLogin, UserPassword);

if( !isDef( Tbl)){
%>

<form name='f' method=post action='TbStru.asp'>
<input type=hidden name=CurrentDb value='<%=DbName%>'>
<table border=1 bgcolor=#7f9faf cellpadding=0 cellspacing=0><td>
<table border=0 cellpadding=8 cellspacing=0><tr valign=bottom><td align=center><b>Databases</b><br>

<%
    QOutSelect( Conn, "DbName' onChange='document.f.submit();", DbName, "", "",
        "select name, name from master.dbo.sysdatabases Order by name", 10);
    Response.Write( '</td>');
    if( isDef( DbName)){
        Response.Write( '<td align=center><b>Tables & Views</b><br>');
        QOutSelect( Conn, "TbId' onChange='document.f.submit();", TbId, ', ',
            "select id, name from "+ DbName+ ".dbo.sysobjects where type in ('U','V') and category<>2 Order By Name", 10);
        Response.Write( '</td>');
    }
    if( isDef( DbName)) S= 'Show structure';
    else S= 'Show list of tables';
    Response.Write(
        " <td><table height='100%' border=0> "+
        "<tr valign=bottom><td><input type=submit value='"+ S+ "'></td></tr> "+
        "</table></td></tr></table></td></table></form><p> "
    );
}

if( !isDef( CurrentDb= Request.Form( "CurrentDb")))
    CurrentDb= Request.QueryString( "CurrentDb");
if( !isDef( Tbl)&& isDef( DbName)&& DbName+ ""== CurrentDb+ ""&& isDef( TbId)){
    Rs= Conn.Execute(
            "select O.name, U.name"+
            " from "+ DbName+ ".dbo.sysobjects O, "+
            DbName+ ".dbo.sysusers U"+
            " where O.id="+ TbId+ " and U.uid=O.uid"
    );
    TbName= Rs( 0);
    TbOwner= Rs( 1);
    Response.Write(
        "<a target='_blank' href='TbStru.asp?Tbl=["+ DbName+ "].["+ TbOwner+ "].["+ TbName+ "]&TbId="+ TbId+
        "&DbName="+ DbName+ "'>"+
        "<font color=white><b>"+ DbName+ "."+ TbOwner+ "."+ TbName+ "</b></font></a> "
    );
    Response.Write( "<br> ");
    Rs= Conn.Execute(
            "select C.name, T.name, C.length, C.xprec, C.xscale,"+
            " C.colstat, C.isnullable,"+
            " case when C.autoval is null then 0 else 1 end,"+
            " SC.text, "+
            "( select CForgin.name+ ' of '+ '<a href="TbStru.asp?"+
                "DbName="+ DbName+ "&CurrentDb="+ DbName+
                "&TbName='+ O.name+ '&TbId='+ Convert( varchar, Sr.rkeyid)+ '"+
                ""><b>'+ O.name+ '</b></a>'"+
                " from "+ DbName+ ".dbo.sysreferences Sr,"+
                DbName+ ".dbo.sysobjects O,"+
                DbName+ ".dbo.syscolumns CForgin"+
                " where Sr.fkeyid="+ TbId+ " and Sr.fkey1=C.colid and Sr.rkeyid=O.id"+
                " and CForgin.id=O.id and CForgin.colid=Sr.rkey1"+
            ") from "+ DbName+ ".dbo.syscolumns C, "+
            DbName+ ".dbo.systypes T, "+
            DbName+ ".dbo.syscomments SC "+
            "where C.id="+ TbId+ " and C.xtype=T.xusertype and C.cdefault*=SC.id "+
            "order by C.colid"
    );
%>
    <input type=hidden name=DbNam

[1] [2]  下一页



打印本文 打印本文  关闭窗口 关闭窗口