﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-为了遗忘的记录-随笔分类-Database</title><link>http://www.cnitblog.com/Raistlin/category/1574.html</link><description>Think!</description><language>zh-cn</language><lastBuildDate>Fri, 30 Sep 2011 23:19:16 GMT</lastBuildDate><pubDate>Fri, 30 Sep 2011 23:19:16 GMT</pubDate><ttl>60</ttl><item><title>MSSqlServer中比较变态的游标</title><link>http://www.cnitblog.com/Raistlin/archive/2006/04/20/9411.html</link><dc:creator>Raistlin</dc:creator><author>Raistlin</author><pubDate>Thu, 20 Apr 2006 03:39:00 GMT</pubDate><guid>http://www.cnitblog.com/Raistlin/archive/2006/04/20/9411.html</guid><wfw:comment>http://www.cnitblog.com/Raistlin/comments/9411.html</wfw:comment><comments>http://www.cnitblog.com/Raistlin/archive/2006/04/20/9411.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Raistlin/comments/commentRss/9411.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Raistlin/services/trackbacks/9411.html</trackback:ping><description><![CDATA[
		<p>DECLARE f_Cursor CURSOR FOR</p>
		<p>SELECT a.*<br />FROM OPENROWSET('SQLOLEDB','FSERVER';'sa';'x',<br />   'SELECT * FROM pubs.dbo.authors ORDER BY au_lname, au_fname') AS a</p>
		<p>
				<br />OPEN f_Cursor</p>
		<p>FETCH NEXT FROM f_Cursor<br />WHILE @@FETCH_STATUS = 0<br />BEGIN<br />   FETCH NEXT FROM f_Cursor<br />END</p>
		<p>CLOSE f_Cursor<br />DEALLOCATE f_Cursor</p>
<img src ="http://www.cnitblog.com/Raistlin/aggbug/9411.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Raistlin/" target="_blank">Raistlin</a> 2006-04-20 11:39 <a href="http://www.cnitblog.com/Raistlin/archive/2006/04/20/9411.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle的安装和MS SQL Server实例名</title><link>http://www.cnitblog.com/Raistlin/archive/2005/12/19/5580.html</link><dc:creator>Raistlin</dc:creator><author>Raistlin</author><pubDate>Mon, 19 Dec 2005 01:32:00 GMT</pubDate><guid>http://www.cnitblog.com/Raistlin/archive/2005/12/19/5580.html</guid><wfw:comment>http://www.cnitblog.com/Raistlin/comments/5580.html</wfw:comment><comments>http://www.cnitblog.com/Raistlin/archive/2005/12/19/5580.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Raistlin/comments/commentRss/5580.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Raistlin/services/trackbacks/5580.html</trackback:ping><description><![CDATA[<DIV><STRONG>Oracle</STRONG><BR>初始密码：</DIV>
<DIV>internal/oracle</DIV>
<DIV>sys/change_on_install</DIV>
<DIV>system/manager</DIV>
<DIV>scott/tiger</DIV>
<DIV>sysman/oem_temp</DIV>
<DIV>最后一个用户名和密码是用来登录management server。</DIV>
<DIV>&nbsp;</DIV>
<DIV>启动的服务：</DIV>
<DIV>OracleOraHome81Agent、OracleOraHome81ClientCache、OracleOraHome81CMAdmin、OracleOraHome81CMan、OracleOraHome81DataGatherer、OracleOraHome81HTTPServer、OracleOraHome81ManagementServer、OracleOraHome81PagingServer、OracleOraHome81TNSListener、OracleServiceWJHORA</DIV>
<DIV>十个，为了正常运转要开五个-_-</DIV>
<DIV>&nbsp;</DIV>
<DIV>连接方式奇怪，是靠OracleOraHome81TNSListener来监听的，这服务不启动，还什么事都做不了。</DIV>
<DIV>反安装的时候注册表居然不处理，留下一堆服务，一堆实例名。</DIV>
<DIV>要连接到一Oracle服务器，客户端要安装oracle客户端的监听程序。</DIV>
<DIV>&nbsp;</DIV>
<DIV>对于每个实例，在HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0中都有对应的5个字符串值。而“ORACLE_SID”这个键只记录最新的实例名。<BR><BR><STRONG>MS SQL Server<BR></STRONG></DIV><BR>
<DIV>MS SQL Server(和MSDE) 已安装实例名：<BR>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\InstalledInstances<BR>&nbsp;默认实例名为MSSQLSERVER</DIV>
<DIV>客户端配置及默认实例的配置：<BR>&nbsp;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer<BR>非默认实例的配置：<BR>&nbsp;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ALJOININSTANCE</DIV>
<DIV>服务启动：<BR>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQL$ALJOININSTANCE<BR>ImagePath ＝ "D:\MICROS~2\MSSQL$~1\binn\sqlservr.exe -sALJOININSTANCE"</DIV>
<DIV>连接到某一个实例名：<BR>&nbsp;当 SQL Server 2000 客户端 Net-Library 连接到 SQL Server 2000 实例时，仅需要运行该实例的计算机所在的网络名和该实例名。当应用程序请求连接远端计算机时，Dbnetlib.dll 将打开到连接中所指定的计算机网络名上的 UDP 端口 1434 的连接。所有运行 SQL Server 2000 实例的计算机都监听此端口。当一个客户端 Dbnetlib.dll 连接到该端口时，服务器将返回一个监听服务器上运行的所有实例的数据包。对于每个实例，该数据包报告该实例正在监听的服务器 Net-Library 和网络地址。应用程序计算机上的 Dbnetlib.dll 收到该数据包后，选择在应用程序计算机和 SQL Server 实例上都启用的 Net-Library，然后连接为此数据包中的 Net-Library 列出的地址。只有在以下情况下该连接尝试才会失败： </DIV>
<DIV>1。请求的 SQL Server 2000 实例未运行。</DIV>
<DIV>2。在应用程序计算机上，SQL Server 2000 实例正在监听的 Net-Library 没有一个是活动的。</DIV><img src ="http://www.cnitblog.com/Raistlin/aggbug/5580.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Raistlin/" target="_blank">Raistlin</a> 2005-12-19 09:32 <a href="http://www.cnitblog.com/Raistlin/archive/2005/12/19/5580.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一般做MS SQL发布订阅要做的准备工作[转]</title><link>http://www.cnitblog.com/Raistlin/archive/2005/12/16/5438.html</link><dc:creator>Raistlin</dc:creator><author>Raistlin</author><pubDate>Fri, 16 Dec 2005 08:39:00 GMT</pubDate><guid>http://www.cnitblog.com/Raistlin/archive/2005/12/16/5438.html</guid><wfw:comment>http://www.cnitblog.com/Raistlin/comments/5438.html</wfw:comment><comments>http://www.cnitblog.com/Raistlin/archive/2005/12/16/5438.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Raistlin/comments/commentRss/5438.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Raistlin/services/trackbacks/5438.html</trackback:ping><description><![CDATA[<P>1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户<BR>我的电脑<BR>&nbsp;&nbsp;&nbsp;&nbsp;--控制面板<BR>&nbsp;&nbsp;&nbsp;&nbsp;--管理工具<BR>&nbsp;&nbsp;&nbsp;&nbsp;--计算机管理<BR>&nbsp;&nbsp;&nbsp;&nbsp;--用户和组<BR>&nbsp;&nbsp;&nbsp;&nbsp;--右键用户<BR>&nbsp;&nbsp;&nbsp;&nbsp;--新建用户<BR>&nbsp;&nbsp;&nbsp;&nbsp;--建立一个隶属于administrator组的登陆windows的用户<BR><BR>2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:<BR><BR>我的电脑--D:\ 新建一个目录,名为: PUB<BR>&nbsp;&nbsp;&nbsp;&nbsp;--右键这个新建的目录<BR>&nbsp;&nbsp;&nbsp;&nbsp;--属性--共享<BR>&nbsp;&nbsp;&nbsp;&nbsp;--选择"共享该文件夹"<BR>&nbsp;&nbsp;&nbsp;&nbsp;--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限<BR>&nbsp;&nbsp;&nbsp;&nbsp;--确定<BR><BR><BR>3.设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)<BR><BR>开始--程序--管理工具--服务<BR>&nbsp;&nbsp;&nbsp;&nbsp;--右键SQLSERVERAGENT<BR>&nbsp;&nbsp;&nbsp;&nbsp;--属性--登陆--选择"此账户"<BR>&nbsp;&nbsp;&nbsp;&nbsp;--输入或者选择第一步中创建的windows登录用户名<BR>&nbsp;&nbsp;&nbsp;&nbsp;--"密码"中输入该用户的密码<BR><BR>4.设置SQL Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置)<BR><BR>企业管理器<BR>&nbsp;&nbsp;&nbsp;&nbsp;--右键SQL实例--属性<BR>&nbsp;&nbsp;&nbsp;&nbsp;--安全性--身份验证<BR>&nbsp;&nbsp;&nbsp;&nbsp;--选择"SQL Server 和 Windows"<BR>&nbsp;&nbsp;&nbsp;&nbsp;--确定<BR><BR>5.在发布服务器和订阅服务器上互相注册<BR>企业管理器<BR>&nbsp;&nbsp;&nbsp;&nbsp;--右键SQL Server组<BR>&nbsp;&nbsp;&nbsp;&nbsp;--新建SQL Server注册...<BR>&nbsp;&nbsp;&nbsp;&nbsp;--下一步--可用的服务器中,输入你要注册的远程服务器名&nbsp;&nbsp;&nbsp;&nbsp;--添加<BR>&nbsp;&nbsp;&nbsp;&nbsp;--下一步--连接使用,选择第二个"SQL Server身份验证"<BR>&nbsp;&nbsp;&nbsp;&nbsp;--下一步--输入用户名和密码<BR>&nbsp;&nbsp;&nbsp;&nbsp;--下一步--选择SQL Server组,也可以创建一个新组<BR>&nbsp;&nbsp;&nbsp;&nbsp;--下一步--完成<BR><BR>6.对于只能用IP,不能用计算机名的,为其注册服务器别名<BR>&nbsp;&nbsp;(在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的IP)<BR>开始--程序--Microsoft SQL Server&nbsp;&nbsp;&nbsp;&nbsp;--客户端网络实用工具<BR>&nbsp;&nbsp;&nbsp;&nbsp;--别名--添加<BR>&nbsp;&nbsp;&nbsp;&nbsp;--网络库选择"tcp/ip"--服务器别名输入SQL服务器名<BR>&nbsp;&nbsp;&nbsp;&nbsp;--连接参数--服务器名称中输入SQL服务器ip地址<BR>&nbsp;&nbsp;&nbsp;&nbsp;--如果你修改了SQL的端口,取消选择"动态决定端口",并输入对应的端口号<BR><BR>自<A href="http://www.dev-club.com/club/bbs/ShowAnnounce.asp?ID=2410382">http://www.dev-club.com/club/bbs/ShowAnnounce.asp?ID=2410382</A><BR><BR><BR>以下也是转:<BR><BR>是我实验的一点心得，我已和伦冠爱我俩详细讨论过，希望能给出批评指正，<BR>&nbsp;并在进一步的实验后我们做出讨论并解决。 其中第二个问题仍需进一步研究和确认解决办法。</P>
<P>我在我自己机器上的数据库中创建了两个数据库，进行复制实验。<BR>&nbsp;发现：</P>
<P>&nbsp;1. 复制主键重复错的问题，即&nbsp; '违反了 PRIMARY KEY 约束 'PK__@snapshot_seqnos__52547341'等错误。不能在对象 '#51604F08' 中&nbsp;&nbsp; 插入重复键。<BR><BR>&nbsp;经查，初步推论此为微软复制程序的BUG,将在PACK4中加以修补，如现在修补，必须联系微软当地&nbsp; SUPPORT,存在收费,&nbsp; 我们的SQLSERVER已升级至PACK3&nbsp; 8.00.760 ,基本为最新。为以下LINK:<BR><A href="http://support.microsoft.com/default.aspx?scid=kb;en-us;813494#appliesto">http://support.microsoft.com/default.aspx?scid=kb;en-us;813494#appliesto</A><BR><BR>2.long-text字段在复制时无法大量导入的问题，错误'为进程未能大容量复制到表"CORP_DYNASTATUS_TAB"”中，在 BCP 数据文件中遇到的意外的 EOF',在现在的&nbsp;数据库中经手工初始化后基本正常，但有时仍然出现此错误和别的错误。<BR><BR>经查，初步推论为微软bcp工具以bulk insert 方式加载 image或文本大对象时支持不好， 网上其他许多人也在复制时也发生同样的问题，给出的答案为<BR>&nbsp;<A href="http://support.microsoft.com/?id=271344">http://support.microsoft.com/?id=271344</A><BR>微软说自己的工具不太支持，建议单独bcp到文件中再从文件中bcp到表中,为此提供textcopy工具.&nbsp;但此工具需单独维护，不能和复制合为一体。<BR></P><img src ="http://www.cnitblog.com/Raistlin/aggbug/5438.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Raistlin/" target="_blank">Raistlin</a> 2005-12-16 16:39 <a href="http://www.cnitblog.com/Raistlin/archive/2005/12/16/5438.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库的表和字段的注释。表的结构 </title><link>http://www.cnitblog.com/Raistlin/archive/2005/12/08/5229.html</link><dc:creator>Raistlin</dc:creator><author>Raistlin</author><pubDate>Thu, 08 Dec 2005 04:03:00 GMT</pubDate><guid>http://www.cnitblog.com/Raistlin/archive/2005/12/08/5229.html</guid><wfw:comment>http://www.cnitblog.com/Raistlin/comments/5229.html</wfw:comment><comments>http://www.cnitblog.com/Raistlin/archive/2005/12/08/5229.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Raistlin/comments/commentRss/5229.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Raistlin/services/trackbacks/5229.html</trackback:ping><description><![CDATA[<DIV>这里的表结构指的表的基本信息：表名，表的注释(备注)，字段名，字段类型，长度，是否允许空，缺省值，字段注释(备注)。</DIV>
<DIV>&nbsp;</DIV>
<DIV>主要的是注释..你的表名叫lcxxb，字段名叫lcmc，智商300的用户也看不懂你这是拼音，意思是"流程信息表"和"流程名称"。大家的思路都不一样。</DIV>
<DIV><BR>我要做到的就是让用户看到的是"流程信息表"和"流程名称"而实际操作的是lcxxb和lcmc。<BR>你自己建个表XXX来保存lcxxb,lcmc和"流程信息表"，"流程名称"的对映吧。是相当麻烦的事情，<BR>1，造成数据冗余，人家数据库基本上都能让你给表和字段写注释，你还自己搞一套..<BR>2，每次修改表都要去修改一下这张表，删除的表和字段要删除，更新的表和字段要更新，新建的表和字段要新建，累..<BR>3，每次创建数据库都要独立的再填写表XXX的内容。每次修改了数据库设计，创建数据库的程序也要跟着修改。</DIV>
<DIV>所以俺还是老老实实用数据库提供的注释或备注或数据字典功能吧。</DIV>
<DIV><BR>但是这又涉及一个问题:各种数据库保存注释(备注)的方法不一样，虽然现在只用MS Sql server，但难保以后不会用Oracle。要不是大家都各搞一套，巴别塔也许早就建成了。</DIV>
<DIV>&nbsp;</DIV>
<DIV>SQL server下的方法(摘自 <A href="http://woooh.com/post/137.html" rel=nofollow><FONT color=#003399>SQL Server下生成数据库框架</FONT></A>)：</DIV>
<DIV>SQL Server下生成数据库框架。<BR>经过反复学习和测试，最后发现自定义的视图才能简单地胜任所需要的工作，否则把事情会变得很复杂。<BR>视图代码如下</DIV>
<DIV>CREATE VIEW dbo.Data_Frame<BR>AS<BR>SELECT dbo.syscolumns.name AS Name, dbo.systypes.name AS Type, <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbo.syscolumns.length AS Width, dbo.syscolumns.isnullable AS IsNull, <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbo.<FONT color=#ff6600>sysproperties</FONT>.[value], dbo.sysobjects.name AS Table_Name<BR>FROM dbo.sysobjects INNER JOIN<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbo.syscolumns ON dbo.sysobjects.id = dbo.syscolumns.id INNER JOIN<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbo.sysproperties ON dbo.syscolumns.colid = dbo.sysproperties.smallid AND <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbo.syscolumns.id = dbo.sysproperties.id INNER JOIN<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbo.systypes ON dbo.syscolumns.xtype = dbo.systypes.xtype AND <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbo.syscolumns.xusertype = dbo.systypes.xusertype</DIV>
<DIV><BR>最后输出的是：</DIV>
<DIV>列名<BR>系统类型<BR>限制长度<BR>是否允许为空<BR>备注<BR>所在表</DIV>
<DIV>可以进一步根据需要增加/删除自己希望的部分。</DIV>
<DIV>调用：<BR>Select * From [自定义的视图名称] Where Table_Name='[希望检索的表名]'</DIV>
<DIV><BR>或者 取得一个表中所有的字段列表及字段描述的方法：</DIV>
<DIV>字段名列表：<BR>select Name from syscolumns where id=object_id('custmoerinfo')</DIV>
<DIV>字段描述：<BR>select * from ::fn_listextendedproperty(NULL, 'user', 'dbo', 'table', 'custmoerinfo','column', default)</DIV>
<DIV><BR>ORACLE下的方法(摘自<A href="http://www.chinaitpower.com/A/2004-07-07/85789.html" rel=nofollow><FONT color=#003399>Oracle数据字典的介绍与应用实例</FONT></A>)：<BR>ORACLE自己搞了一套数据字典创建表的SQL语句如下<BR>--" 创建数据表<BR>create table TABLE_TEST<BR>(<BR>　　NAME varchar2(40) not null,<BR>　　SEX varchar2(1) default 'Y' not null,<BR>　　BIRTHDAY date not null,<BR>　　HEIGHT number(3,2),<BR>　　WEIGHT number(3,2),<BR>　　MEMO blob<BR>);<BR>-- 给列添加备注<BR>　　comment on column TABLE_TEST.NAME is '姓名';<BR>　　comment on column TABLE_TEST.SEX is '性别';<BR>　　comment on column TABLE_TEST.BIRTHDAY is '生日';<BR>　　comment on column TABLE_TEST.HEIGHT is '身高';<BR>　　comment on column TABLE_TEST.WEIGHT is '体重';<BR>　　comment on column TABLE_TEST.MEMO is '备注';<BR>-- 创建约束关系 主键 外键 其他<BR>　　alter table TABLE_TEST add constraint TB_TEST_P_NAME primary key (NAME);<BR>　　<BR>数据表创建完毕，执行下列SQL语句：<BR>　　select<BR>　　A.column_name 字段名,A.data_type 数据类型,A.data_length 长度,A.data_precision 整数位,<BR>　　A.Data_Scale 小数位,A.nullable 允许空值,A.Data_default 缺省值,B.comments 备注<BR>　　from<BR>　　<FONT color=#ff6600>user_tab_columns </FONT>A,<FONT color=#ff6600>user_col_comments </FONT>B<BR>　　where<BR>　　A.Table_Name = B.Table_Name<BR>　　and A.Column_Name = B.Column_Name<BR>　　and A.Table_Name = 'TABLE_TEST'<BR>　　<BR>我们可以得出以下结果：</DIV>
<DIV>
<TABLE width="100%" border=1>
<TBODY>
<TR>
<TH>字段名</TH>
<TH>数据类型</TH>
<TH>长度</TH>
<TH>整数位</TH>
<TH>小数位</TH>
<TH>允许空值</TH>
<TH>缺省值</TH>
<TH>备注</TH></TR>
<TR>
<TD>Name</TD>
<TD>varchar2</TD>
<TD>40</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>N</TD>
<TD>&lt;long&gt;</TD>
<TD>姓名</TD></TR>
<TR>
<TD>Sex</TD>
<TD>varchar2</TD>
<TD>1</TD>
<TD>&nbsp;</TD>
<TD>&nbsp;</TD>
<TD>N</TD>
<TD>&lt;long&gt;</TD>
<TD>性别</TD></TR>
<TR>
<TD colSpan=8>........</TD></TR></TBODY></TABLE></DIV><BR>
<P><BR>&nbsp;</P>
<P>学习数据库的一些资料：</P>
<P>存储过程的好处：1编译2封装3重复使用4安全性5减少网络流量</P>
<P>JDBC读取字段需要按顺序的原因？：SQL数据库在构造虚拟表的时候就是以一种先进先出的原则,把所有的数据排列在一个内存段之中,通过顺序的读取,将数据逐一的读取,而如果跳过某个具体的字段获取下一个字段的信息,系统就会将原来的那个字段的信息丢失,以释放内存,这是出于系统构造的简单性和系统的内存最低化的要求,所以这样也保证了有限的内存资源得到最充分的发挥。？</P>
<P>在SQL Server中保存和输出图片<A href="http://www.pcdog.com/p/html/2004124/41220041381_1.htm"><FONT color=#003399>http://www.pcdog.com/p/html/2004124/41220041381_1.htm</FONT></A></P>
<P>很好的一个电子书下载地址<A href="http://www.ibook8.com/book/shuju.htm"><FONT color=#003399>http://www.ibook8.com/book/shuju.htm</FONT></A></P><img src ="http://www.cnitblog.com/Raistlin/aggbug/5229.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Raistlin/" target="_blank">Raistlin</a> 2005-12-08 12:03 <a href="http://www.cnitblog.com/Raistlin/archive/2005/12/08/5229.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于数据库的链接</title><link>http://www.cnitblog.com/Raistlin/archive/2005/07/11/855.html</link><dc:creator>Raistlin</dc:creator><author>Raistlin</author><pubDate>Mon, 11 Jul 2005 03:26:00 GMT</pubDate><guid>http://www.cnitblog.com/Raistlin/archive/2005/07/11/855.html</guid><wfw:comment>http://www.cnitblog.com/Raistlin/comments/855.html</wfw:comment><comments>http://www.cnitblog.com/Raistlin/archive/2005/07/11/855.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/Raistlin/comments/commentRss/855.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/Raistlin/services/trackbacks/855.html</trackback:ping><description><![CDATA[<P>本来想把自己以前写的关于数据库主键的一篇blog转过来，回头一看写得太肤浅了，就把收集到的关于数据库的连接给发上，也方便自己以后复习。以下大部分内容来自<A href="http://www.vckbase.com/document/listdoc.asp?mclsid=11">vckbase<BR></A><BR><A href="http://www.cnblogs.com/tintown/archive/2005/03/02/111459.html">数据库主键设计之思考</A><BR>----"<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我强调主键不应该具有实际的意义，这可能对于一些朋友来说不太认同</SPAN>..."<BR><BR><A href="http://www.vckbase.com/document/viewdoc/?id=1307">SQL Server 索引结构及其使用（一）</A><BR>----实际上，您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引：聚集索引（clustered index，也称聚类索引、簇集索引）和非聚集索引（nonclustered index，也称非聚类索引、非簇集索引）......<BR><A href="http://www.vckbase.com/document/viewdoc/?id=1308">SQL Server 索引结构及其使用（二）</A><BR>----很多人不知道SQL语句在SQL SERVER中是如何执行的，他们担心自己所写的SQL语句会被SQL SERVER误解。比如： select * from table1 where name=''zhangsan'' and tID &gt; 10000 和执行: select * from table1 where tID &gt; 10000 and name=''zhangsan'' 　　一些人不知道以上两条语句的执行效率是否一样，因为如果简单的从语句先后上看，这两个语句的确是不一样，如果tID是一个聚合索引，那么后一句仅仅从表的10000条以后的记录中查找就行了；而前一句则要先从全表中查找看有几个name=''zhangsan''的，而后再根据限制条件条件tID&gt;10000来提出查询结果。 <BR><A href="http://www.vckbase.com/document/viewdoc/?id=1309">&nbsp;SQL Server 索引结构及其使用（三）</A><BR>----建立一个 Web 应用，分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法，也就是利用ADO自带的分页功能（利用游标）来实现分页。但这种分页方法仅适用于较小数据量的情形，因为游标本身有缺点：游标是存放在内存中，很费内存。游标一建立，就将相关的记录锁住，直到取消游标。游标提供了对特定集合中逐行扫描的手段，一般使用游标来逐行遍历数据，根据取出数据条件的不同进行不同的操作。而对于多表和大表中定义的游标（大的数据集合）循环很容易使程序进入一个漫长的等待甚至死机。<BR><A href="http://www.vckbase.com/document/viewdoc/?id=1310">SQL Server 索引结构及其使用（四）</A><BR>----在上一节的标题中，笔者写的是：实现小数据量和海量数据的通用分页显示存储过程。这是因为在将本存储过程应用于“办公自动化”系统的实践中时，笔者发现这第三种存储过程在小数据量的情况下，有如下现象： 1、分页速度一般维持在1秒和3秒之间。 2、在查询最后一页时，速度一般为5秒至8秒，哪怕分页总数只有3页或30万页。<BR><BR><A href="http://www.vckbase.com/document/viewdoc/?id=1111">数据库中存储过程的自动化生成</A><BR>----设计时的自动化加快了编码，并保证所有过程都用相同的命名规范和结构来生成。为了在大型 SQL 项目中尽量提高编码的效率，作者编写了一系列的设计时（design-time）存储过程，用它们来生成运行时（run-time）存储过程，并一直在工程中使用。最近，作者更新了其存储过程以便使用 SQL Server 2000 的特性，其中包括用户定义函数。本文所及内容涵盖创建并执行这些动态 T-SQL 脚本以使普通的数据库存储过程编码自动化。<BR></P><img src ="http://www.cnitblog.com/Raistlin/aggbug/855.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/Raistlin/" target="_blank">Raistlin</a> 2005-07-11 11:26 <a href="http://www.cnitblog.com/Raistlin/archive/2005/07/11/855.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>