PC6下载站

分类分类

SQL SERVER结构浏览器

关注+2004-11-07作者:蓝点

从老外那儿转帖过来的



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



<%@ 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;    

%>




">


MS SQL Structure Viewer Version 1.2









    







    MS SQL WebTools &gt;&gt; Table Structure Viewer


    written by

    

    Alexander Tkalich









<%

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( "");     if( FirstName!= "")         Response.Write( ""+ FirstName);     for( ; !Rs.EOF; Rs.MoveNext()){         Id= Rs( 0);         Nm= Rs( 1);         if( Value== ""+ Id) S= 'selected'; else S= '';         Response.Write( ""+ Nm+ "\n");     }     Response.Write( "");

}



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;

%>






<%

var Conn= Server.CreateObject("ADODB.Connection");

Conn.Open( ConnStr, UserLogin, UserPassword);



if( !isDef( Tbl)){

%>





">

');

    if( isDef( DbName)){

        Response.Write( '');

    }

    if( isDef( DbName)) S= 'Show structure';

    else S= 'Show list of tables';

    Response.Write(

        "\n\n"+

        "






Databases




<%

    QOutSelect( Conn, "DbName' onChange='document.f.submit();", DbName, "", "",

        "select name, name from master.dbo.sysdatabases Order by name", 10);

    Response.Write( '
Tables & Views
');

        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( '
\n"+         "



\n"

    );

}



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(

        ""+

        ""+ DbName+ "."+ TbOwner+ "."+ TbName+ "\n"

    );

    Response.Write( "
\n");

    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)+ '"+

                "\">'+ O.name+ ''"+

                " 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"

    );

%>

    ">

    ">

    ">

    



    <tr bgcolor=<%=trcolor%>>

        

<%

    for( TrColor= '', i= 1; !Rs.EOF; i++, Rs.MoveNext()){

        if( trColor== trColor1) trColor= trColor2;

        else trColor= trColor1;

%>

        <tr bgcolor=<%=trcolor%>>

        <td bgcolor=<%=trcolor2%>align=right><%=i%>

        

        

<%

        if( Rs( 1)== 'numeric'|| Rs( 1)== 'decimal'){

            prec= Rs( 3);

            scale= Rs( 4);

        } else prec= scale= '&nbsp;';

        colstat= "";

        if( Rs( 7)== 1) colstat+= ", Identity";

        if( Rs( 5)== 1) colstat+= ", Primary Key";

        if( Rs( 6)== 1) colstat+= ", Nullable";

        if( colstat== "")

            colstat= "&nbsp;";

        else

            colstat= colstat.substring( 2);

        cdefault= Rs( 8);

        if( !isDef( cdefault)) cdefault= "&nbsp;";

        else {

            cdefault= ""+ cdefault;

            cdefault= cdefault.substring( 1, cdefault.length- 1);

        }

        foreign= Rs( 9);

        if( !isDef( foreign)) foreign= "&nbsp;";

%>

        

        

        

<%

    }

%>

    

Nn
Name
Type
length
precision
scale
default value
properties
relation
&nbsp;

        <%=rs(>
&nbsp;<%=rs(>
&nbsp;<%=rs(>
<%=prec%>
<%=scale%>
<%=cdefault%>
<%=colstat%>
<%=foreign%>



<%

}

if( isDef( Tbl)){

    Response.Write( ""+ Tbl+ "
\n");

    Rs= Conn.Execute( "select count( *) from "+ Tbl);

    RecordCount= Rs( 0);

    Response.Write( ""+ RecordCount+ " Records total
");

    Rs= Conn.Execute( "select * from "+ Tbl);

    if( !isDef( Row))

        Row= 0;

    if( !Rs.EOF)

        Rs.Move( Row);

%>



<%

    var ColCount= Rs.Fields.Count;

    for( i1= 0; i1< ColCount; i1++)

        Response.Write( "");

    Response.Write( "\n");

    Prev= Row- PgSize;

    if( Prev< 0&& Row> 0) Prev= 0;

    for( i= Row+ 1, Cntr= 0;

         Cntr< PgSize&& !Rs.EOF;

         Rs.MoveNext(), i++, Cntr++

    ){

        if( trColor== trColor1) trColor= trColor2;

        else trColor= trColor1;

%>

        <tr bgcolor=<%=trcolor%>>

        <td bgcolor=<%=trcolor2%>align=right><%=i%>

<%

        for( i1= 0; i1< ColCount; i1++)

            Response.Write( "");

        Response.Write( "\n");

    }

    if( Cntr> 0){

        Response.Write( "");

        for( i1= 0; i1< ColCount; i1++)

            Response.Write( "");

        Response.Write( "\n");

    }

    Response.Write( "

N/n
"+ Rs.Fields( i1).Name+ "
"+ Rs.Fields( i1).Value+ "

N/n
"+ Rs.Fields( i1).Name+ "

\n");

    if( Prev>= 0){

        QS= new String( Request.QueryString);

        Prev= QS.substring( 0, QS.lastIndexOf( "=")+ 1)+ Prev;

        Response.Write( "\n");

    }

    if( !Rs.EOF){

        QS= new String( Request.QueryString);

        if( QS.lastIndexOf( "&Row=")+ 1)

            Next= QS.substring( 0, QS.lastIndexOf( "=")+ 1)+ ( i- 1);

        else

            Next= QS+ "&Row="+ ( i- 1);

        Response.Write( "\n");

    }

    Response.Write( "

展开全部

相关文章

更多+相同厂商

热门推荐

  • 最新排行
  • 最热排行
  • 评分最高
排行榜

    点击查看更多

      点击查看更多

        点击查看更多

        说两句网友评论

          我要评论...
          取消