当前位置:数据库 > SQLServer >>

经典源码——SQL SERVER结构浏览器

<%@ LANGUAGE = J<I>script</I> %> 
<% 
<I>var</I> ConnStr= "DSN=admin"; // 
<I>var</I> UserLogin= "sa"; // input empty Login and Password, 
<I>var</I> UserPassword= ""; // if your DSN works via WinNT trust connection 
<I>var</I> CharSet= "gb2312"; // as sample "windows-1251" 
<I>var</I> PgSize= 10;  
%> 
<html> 
<head> 
<<I>meta</I> 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 >> 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> 
<% 
<I>var</I> trColor1= "#7f9faf", trColor2= "#bfcfd7"; 
<I>var</I> trColor= trColor1;
 
<I>function</I> isDef( Value){ 
if( Value== ( Value+ "")) return true; 
return false; 
}
 
<I>function</I> QOutSelect( Conn, Name, Value, FirstName, FirstValue, SQL, SSize){ 
<I>var</I> 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>"); 
}
 
<I>var</I> 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>
 
<% 
<I>var</I> 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( <I>var</I>char, 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=DbName value=<%=DbName%>> 
<input type=hidden name=CurrentDb value=<%=DbName%>> 
<input type=hidden name=TbId value=<%=TbId%>> 
<table border=1 bordercolor=#5f5f5f bgcolor=#cfcfcf cellpadding=3 cellspacing=0> 
<tr bgcolor=<%=trColor%>><th>Nn</th><th>Name</th><th>Type</th><th>length</th> 
<th>precision</th><th>scale</th><th>default value</th><th>properties</th><th>relation</th></tr> 
<% 
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><b><%=i%></b></td><td>  
<%=Rs( 0)%></td> 
<td align=right> <%=Rs( 1)%></td> 
<td align=right> <%=Rs( 2)%></td> 
<% 
if( Rs( 1)== numeric|| Rs( 1)== decimal){ 
prec= Rs( 3); 
scale= Rs( 4); 
} else prec= scale= ; 
colstat= ""; 
if( Rs( 7)== 1) colstat+= ", Identity"; 
if( Rs( 5)== 1) colstat+= ", Primary Key"; 
if( Rs( 6)== 1) colstat+= ", N

补充:综合编程 , 安全编程 ,
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,