﻿<?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博客-白开心-文章分类-T-SQL</title><link>http://www.cnitblog.com/hj627/category/1944.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 18 Jul 2012 09:14:15 GMT</lastBuildDate><pubDate>Wed, 18 Jul 2012 09:14:15 GMT</pubDate><ttl>60</ttl><item><title>SQLSERVER SQL性能优化</title><link>http://www.cnitblog.com/hj627/articles/83053.html</link><dc:creator>白开心</dc:creator><author>白开心</author><pubDate>Mon, 16 Jul 2012 03:10:00 GMT</pubDate><guid>http://www.cnitblog.com/hj627/articles/83053.html</guid><wfw:comment>http://www.cnitblog.com/hj627/comments/83053.html</wfw:comment><comments>http://www.cnitblog.com/hj627/articles/83053.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/hj627/comments/commentRss/83053.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/hj627/services/trackbacks/83053.html</trackback:ping><description><![CDATA[1.选择最有效率的表名顺序(只在基于规则的优化器中有效)　　 <br />　　 <strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>的解析器按照从右到左的顺序处理FROM子句中的表名，因此FROM子句中写在最后的表（基础表driving table）将被最先处理，在FROM子句中包含多个表的情况下，必须选择记录条数最少的表作为基础表，当<strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>处理多个表时，会运用排序及合并的方式连接它们， <br /><br />　　 首先，扫描第一个表（FROM子句中最后的那个表)并对记录进行排序；然后扫描第二个表（FROM子句中最后第二个表)；最后将所有从第二个表中检索出的记录与第一个表中合适记录进行合并 <br /><br />　　 例如: 表 TAB1 16,384 条记录表 TAB2 5 条记录，选择TAB2作为基础表 (最好的方法) select count(*) from tab1,tab2 执行时间0.96秒，选择TAB2作为基础表 (不佳的方法) select count(*) from tab2,tab1 执行时间26.09秒； <br /><br />如果有3个以上的表连接查询，那就需要选择交叉表（intersection table）作为基础表，交叉表是指那个被其他表所引用的表　　 <br />　　 例如: <br />　　 EMP表描述了LOCATION表和CATEGORY表的交集 <br />　　 SELECT * <br />　　 FROM LOCATION L, <br />　　 CATEGORY C, <br />　　 EMP E <br />　　 WHERE E.EMP_NO BETWEEN 1000 AND 2000 <br />　　 AND E.CAT_NO = C.CAT_NO <br />　　 AND E.LOCN = L.LOCN <br />　　 <br />　　 将比下列<strong style="background-color: rgb(160,255,255); color: black">SQL</strong>更有效率 <br />　　 SELECT * <br />　　 FROM EMP E , <br />　　 LOCATION L , <br />　　 CATEGORY C <br />　　 WHERE E.CAT_NO = C.CAT_NO <br />　　 AND E.LOCN = L.LOCN <br />　　 AND E.EMP_NO BETWEEN 1000 AND 2000 <br />　　 <br />　　 2.WHERE子句中的连接顺序　　 <br />　　 <strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>采用自下而上的顺序解析WHERE子句，根据这个原理，表之间的连接必须写在其他WHERE条件之前，那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾　　 <br />　　 例如： <br />　　 (低效,执行时间156.3秒) <br />　　 SELECT * <br />　　 FROM EMP E <br />　　 WHERE SAL &gt; 50000 <br />　　 AND JOB = &#8217;MANAGER&#8217; <br />　　 AND 25 &lt; (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO);　　 <br />　　 (高效,执行时间10.6秒) <br />　　 SELECT * <br />　　 FROM EMP E <br />　　 WHERE 25 &lt; (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO) <br />　　 AND SAL &gt; 50000 <br />　　 AND JOB = &#8217;MANAGER&#8217;; <br />　　 <br />　　 3.SELECT子句中避免使用&#8217;*&#8217;。当你想在SELECT子句中列出所有的COLUMN时，使用动态<strong style="background-color: rgb(160,255,255); color: black">SQL</strong>列引用&#8217;*&#8217;是一个方便的方法，不幸的是，这是一个非常低效的方法。实际上，<strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>在解析的过程中，会将&#8217;*&#8217;依次转换成所有的列名，这个工作是通过查询数据字典完成的，这意味着将耗费更多的时间 <br /><br />　　 <br />　　 4.减少访问数据库的次数。当执行每条<strong style="background-color: rgb(160,255,255); color: black">SQL</strong>语句时，<strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>在内部执行了许多工作：解析<strong style="background-color: rgb(160,255,255); color: black">SQL</strong>语句，估算索引的利用率，绑定变量，读数据块等等 <br />　　 由此可见，减少访问数据库的次数，就能实际上减少<strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>的工作量，例如： <br />　　 以下有三种方法可以检索出雇员号等于0342或0291的职员　　 <br />　　 方法1 (最低效) <br />　　 SELECT EMP_NAME, SALARY, GRADE <br />　　 FROM EMP <br />　　 WHERE EMP_NO = 342; <br />　　 SELECT EMP_NAME, SALARY, GRADE <br />　　 FROM EMP <br />　　 WHERE EMP_NO = 291; <br />　　 <br />　　 方法2 (次低效) <br />　　 DECLARE <br />　　 CURSOR C1 (E_NO NUMBER) IS <br />　　 SELECT EMP_NAME,SALARY,GRADE <br />　　 FROM EMP <br />　　 WHERE EMP_NO = E_NO; <br />　　 BEGIN <br />　　 OPEN C1(342); <br />　　 FETCH C1 INTO &#8230;,&#8230;,&#8230;; <br />　　 &#8230; <br />　　 OPEN C1(291); <br />　　 FETCH C1 INTO &#8230;,&#8230;,&#8230;; <br />　　 &#8230; <br />　　 CLOSE C1; <br />　　 END; <br />　　 <br />　　 方法2 (高效) <br />　　 SELECT A.EMP_NAME, A.SALARY, A.GRADE, <br />　　 B.EMP_NAME, B.SALARY, B.GRADE <br />　　 FROM EMP A, EMP B <br />　　 WHERE A.EMP_NO = 342 <br />　　 AND B.EMP_NO = 291; <br />　　 <br />　　 5.使用DECODE函数来减少处理时间 <br /><br />　　 <br />　　 使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表 <br />　　 <br />　　 例如： <br />　　 SELECT COUNT(*), SUM(SAL) <br />　　 FROM EMP <br />　　 WHERE DEPT_NO = &#8217;0020&#8217; <br />　　 AND ENAME LIKE &#8217;SMITH%&#8217;; <br />　　 <br />　　 SELECT COUNT(*), SUM(SAL) <br />　　 FROM EMP <br />　　 WHERE DEPT_NO = &#8217;0030&#8217; <br />　　 AND ENAME LIKE &#8217;SMITH%&#8217;; <br />　　 <br />　　 你可以用DECODE函数高效地得到相同结果 <br />　　 SELECT COUNT(DECODE(DEPT_NO, &#8217;0020&#8217;, &#8217;X&#8217;, NULL)) D0020_COUNT, <br />　　 COUNT(DECODE(DEPT_NO, &#8217;0030&#8217;, &#8217;X&#8217;, NULL)) D0030_COUNT, <br />　　 SUM(DECODE(DEPT_NO, &#8217;0020&#8217;, SAL, NULL)) D0020_SAL, <br />　　 SUM(DECODE(DEPT_NO, 0030, SAL, NULL)) D0030_SAL <br />　　 FROM EMP <br />　　 WHERE ENAME LIKE &#8217;SMITH%&#8217;; <br />　　 <br />　　 &#8217;X&#8217;表示任何一个字段 <br />　　 类似的，DECODE函数也可以运用于GROUP BY和ORDER BY子句中 <br />　　 <br />　　 6.用Where子句替换HAVING子句 <br />　　 <br />　　 避免使用HAVING子句，HAVING只会在检索出所有记录之后才对结果集进行过滤，这个处理需要排序、统计等操作 <br />　　 <br />　　 如果能通过WHERE子句限制记录的数目，那就能减少这方面的开销 <br />　　 <br />　　 例如： <br />　　 低效 <br />　　 SELECT REGION, AVG(LOG_SIZE) <br />　　 FROM LOCATION <br />　　 GROUP BY REGION <br />　　 HAVING REGION REGION != &#8217;SYDNEY&#8217; <br />　　 AND REGION != &#8217;PERTH&#8217; <br />　　 <br />　　 高效 <br />　　 SELECT REGION, AVG(LOG_SIZE) <br />　　 FROM LOCATION <br />　　 WHERE REGION REGION != &#8217;SYDNEY&#8217; <br />　　 AND REGION != &#8217;PERTH&#8217; <br />　　 GROUP BY REGION <br />　　 <br />　　 7.减少对表的查询 <br />　　 <br />　　 在含有子查询的<strong style="background-color: rgb(160,255,255); color: black">SQL</strong>语句中，要特别注意减少对表的查询　　 <br />　　 例如：　　 <br />　　 低效 <br />　　 SELECT TAB_NAME <br />　　 FROM TABLES <br />　　 WHERE TAB_NAME = (SELECT TAB_NAME <br />　　 FROM TAB_COLUMNS <br />　　 WHERE VERSION = 604) <br />　　 AND DB_VER = (SELECT DB_VER <br />　　 FROM TAB_COLUMNS <br />　　 WHERE VERSION = 604) <br />　　 <br />　　 高效 <br />　　 SELECT TAB_NAME <br />　　 FROM TABLES <br />　　 WHERE (TAB_NAME, DB_VER) = (SELECT TAB_NAME, DB_VER <br />　　 FROM TAB_COLUMNS <br />　　 WHERE VERSION = 604) <br /><br />　　 <br />　　 Update多个Column例子： <br />　　 低效 <br />　　 UPDATE EMP <br />　　 SET EMP_CAT = (SELECT MAX(CATEGORY) <br />　　 FROM EMP_CATEGORIES), <br />　　 SAL_RANGE = (SELECT MAX(SAL_RANGE) <br />　　 FROM EMP_CATEGORIES) <br />　　 WHERE EMP_DEPT = 0020; <br />　　 <br />　　 高效 <br />　　 UPDATE EMP <br />　　 SET (EMP_CAT, SAL_RANGE) = (SELECT MAX(CATEGORY), MAX(SAL_RANGE) <br />　　 FROM EMP_CATEGORIES) <br />　　 WHERE EMP_DEPT = 0020; <br />　　 <br />　　 8.使用表的别名(Alias)，当在<strong style="background-color: rgb(160,255,255); color: black">SQL</strong>语句中连接多个表时，请使用表的别名并把别名前缀于每个Column上，这样可以减少解析的时间并减少那些由Column歧义引起的语法错误 <br />　　 <br />　　 9.用EXISTS替代IN <br />　　 <br />　　 在许多基于基础表的查询中，为了满足一个条件，往往需要对另一个表进行联接 <br />　　 <br />　　 在这种情况下，使用EXISTS(或NOT EXISTS)通常将提高查询的效率 <br />　　 <br />　　 低效 <br />　　 SELECT * <br />　　 FROM EMP (基础表) <br />　　 WHERE EMPNO &gt; 0 <br />　　 AND DEPTNO IN (SELECT DEPTNO <br />　　 FROM DEPT <br />　　 WHERE LOC = &#8217;MELB&#8217;) <br />　　 <br />　　 高效 <br />　　 SELECT * <br />　　 FROM EMP (基础表) <br />　　 WHERE EMPNO &gt; 0 <br />　　 AND EXISTS (SELECT &#8217;X&#8217; <br />　　 FROM DEPT <br />　　 WHERE DEPT.DEPTNO = EMP.DEPTNO <br />　　 AND LOC = &#8217;MELB&#8217;) <br />　　 <br />　　 10.用NOT EXISTS替代NOT IN <br />　　 <br />　　 在子查询中，NOT IN子句将执行一个内部的排序和合并 <br />　　 <br />　　 无论在哪种情况下，NOT IN都是最低效的，因为它对子查询中的表执行了一个全表遍历 <br />　　 <br />　　 为了避免使用NOT IN，我们可以把它改写成外连接(Outer Joins)或NOT EXISTS <br />　　 <br />　　 例如： <br />　　 SELECT &#8230; <br />　　 FROM EMP <br />　　 WHERE DEPT_NO NOT IN (SELECT DEPT_NO <br />　　 FROM DEPT <br />　　 WHERE DEPT_CAT = &#8217;A&#8217;); <br />　　 <br />　　 为了提高效率改写为 <br />　　 高效 <br />　　 SELECT &#8230; <br />　　 FROM EMP A, DEPT B <br />　　 WHERE A.DEPT_NO = B.DEPT(+) <br />　　 AND B.DEPT_NO IS NULL <br />　　 AND B.DEPT_CAT(+) = &#8217;A&#8217; <br />　　 <br />　　 最高效 <br />　　 SELECT &#8230; <br />　　 FROM EMP E <br />　　 WHERE NOT EXISTS (SELECT &#8217;X&#8217; <br />　　 FROM DEPT D <br />　　 WHERE D.DEPT_NO = E.DEPT_NO <br />　　 AND DEPT_CAT = &#8217;A&#8217;); <br />　　 <br />　　 11.用表连接替换EXISTS <br />　　 <br />　　 通常来说，采用表连接的方式比EXISTS更有效率 <br />　　 <br />　　 例如： <br />　　 SELECT ENAME <br />　　 FROM EMP E <br />　　 WHERE EXISTS (SELECT &#8217;X&#8217; <br />　　 FROM DEPT <br />　　 WHERE DEPT_NO = E.DEPT_NO <br />　　 AND DEPT_CAT = &#8217;A&#8217;); <br />　　 <br />　　 更高效 <br />　　 SELECT ENAME <br />　　 FROM DEPT D, EMP E <br />　　 WHERE E.DEPT_NO = D.DEPT_NO <br />　　 AND DEPT_CAT = &#8217;A&#8217;; <br />　　 <br />　　 12.用EXISTS替换DISTINCT <br />　　 <br />　　 当提交一个包含多表信息（比如部门表和雇员表）的查询时，避免在SELECT子句中使用DISTINCT，一般可以考虑用EXIST替换 <br />　　 <br />　　 例如： <br />　　 <br />　　 低效 <br />　　 SELECT DISTINCT DEPT_NO, DEPT_NAME <br />　　 FROM DEPT D, EMP E <br />　　 WHERE D.DEPT_NO = E.DEPT_NO <br />　　 <br />　　 高效 <br />　　 SELECT DEPT_NO, DEPT_NAME <br />　　 FROM DEPT D <br />　　 WHERE EXISTS (SELECT &#8217;X&#8217; <br />　　 FROM EMP E <br />　　 WHERE E.DEPT_NO = D.DEPT_NO); <br />　　 <br />　　 EXISTS使查询更为迅速，因为RDBMS核心模块将在子查询的条件一旦满足后，立刻返回结果 <br />　　 <br />　　 13.用索引提高效率 <br />　　 <br />　　 索引是表的一个概念部分，用来提高检索数据的效率。实际上，<strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>使用了一个复杂的自平衡B-tree结构 <br />　　 <br />　　 通常，通过索引查询数据比全表扫描要快。当<strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>找出执行查询和Update语句的最佳路径时，<strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>优化器将使用索引 <br />　　 <br />　　 同样，在联结多个表时使用索引也可以提高效率。另一个使用索引的好处是，它提供了主键（primary key）的唯一性验证 <br />　　 <br />　　 除了那些LONG或LONG RAW数据类型，你可以索引几乎所有的列 <br />　　 <br />　　 通常在大型表中使用索引特别有效，当然，在扫描小表时，使用索引同样能提高效率 <br />　　 <br />　　 虽然使用索引能得到查询效率的提高，但是我们也必须注意到它的代价 <br />　　 <br />　　 索引需要空间来存储，也需要定期维护，每当有记录在表中增减或索引列被修改时，索引本身也会被修改 <br />　　 <br />　　 这意味着每条记录的INSERT、DELETE、UPDATE将为此多付出4、5次的磁盘I/O <br />　　 <br />　　 因为索引需要额外的存储空间和处理，那些不必要的索引反而会使查询反应时间变慢 <br />　　 <br />　　 <strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>对索引有两种访问模式： <br />　　 <br />　　 1).索引唯一扫描（INDEX UNIQUE SCAN） <br />　　 <br />　　 大多数情况下, 优化器通过WHERE子句访问INDEX <br />　　 <br />　　 例如： <br />　　 表LODGING有两个索引：建立在LODGING列上的唯一性索引LODGING_PK和建立在MANAGER列上的非唯一性索引LODGING$MANAGER <br />　　 SELECT * <br />　　 FROM LODGING <br />　　 WHERE LODGING = &#8217;ROSE HILL&#8217;; <br />　　 <br />　　 在内部，上述<strong style="background-color: rgb(160,255,255); color: black">SQL</strong>将被分成两步执行： <br />　　 <br />　　 首先，LODGING_PK索引将通过索引唯一扫描的方式被访问，获得相对应的ROWID；然后通过ROWID访问表的方式执行下一步检索 <br />　　 <br />　　 如果被检索返回的列包括在INDEX列中，<strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>将不执行第二步的处理（通过ROWID访问表） <br />　　 <br />　　 因为检索数据保存在索引中，单单访问索引就可以完全满足查询结果 <br />　　 <br />　　 2).索引范围查询(INDEX RANGE SCAN) <br />　　 <br />　　 适用于两种情况: <br />　　 <br />　　 1&gt;.基于唯一性索引的一个范围的检索 <br />　　 <br />　　 2&gt;.基于非唯一性索引的检索 <br />　　 <br />　　 例1 <br />　　 SELECT LODGING <br />　　 FROM LODGING <br />　　 WHERE LODGING LIKE &#8217;M%&#8217;; <br />　　 <br />　　 WHERE子句条件包括一系列值，<strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>将通过索引范围查询的方式查询LODGING_PK <br />　　 <br />　　 由于索引范围查询将返回一组值，它的效率就要比索引唯一扫描低一些 <br />　　 <br />　　 例2 <br />　　 SELECT LODGING <br />　　 FROM LODGING <br />　　 WHERE MANAGER = &#8217;BILL GATES&#8217;; <br />　　 <br />　　 这个<strong style="background-color: rgb(160,255,255); color: black">SQL</strong>的执行分两步，LODGING$MANAGER的索引范围查询（得到所有符合条件记录的ROWID），通过ROWID访问表得到LODGING列的值 <br />　　 <br />　　 由于LODGING$MANAGER是一个非唯一性的索引，数据库不能对它执行索引唯一扫描 <br />　　 <br />　　 WHERE子句中，如果索引列所对应的值的第一个字符由通配符（WILDCARD）开始，索引将不被采用 <br />　　 SELECT LODGING <br />　　 FROM LODGING <br />　　 WHERE MANAGER LIKE &#8217;％HANMAN&#8217;; <br />　　 <br />　　 在这种情况下，<strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>将使用全表扫描 <br />　　 <br />　　 14.避免在索引列上使用计算 <br />　　 <br />　　 WHERE子句中，如果索引列是函数的一部分，优化器将不使用索引而使用全表扫描 <br />　　 <br />　　 例如： <br />　　 <br />　　 低效 <br />　　 SELECT &#8230; <br />　　 FROM DEPT <br />　　 WHERE SAL * 12 &gt; 25000; <br />　　 <br />　　 高效 <br />　　 SELECT &#8230; <br />　　 FROM DEPT <br />　　 WHERE SAL &gt; 25000/12; <br />　　 <br />　　 请务必注意，检索中不要对索引列进行处理，如：TRIM，TO_DATE，类型转换等操作，破坏索引，使用全表扫描，影响<strong style="background-color: rgb(160,255,255); color: black">SQL</strong>执行效率 <br />　　 <br />　　 15.避免在索引列上使用IS NULL和IS NOT NULL <br />　　 <br />　　 避免在索引中使用任何可以为空的列，<strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>将无法使用该索引 <br />　　 <br />　　 对于单列索引，如果列包含空值，索引中将不存在此记录； <br />　　 <br />　　 对于复合索引，如果每个列都为空，索引中同样不存在此记录。如果至少有一个列不为空，则记录存在于索引中 <br />　　 <br />　　 如果唯一性索引建立在表的A列和B列上，并且表中存在一条记录的A,B值为(123,null)， <br />　　 <br />　　 <strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>将不接受下一条具有相同A,B值（123,null）的记录插入 <br />　　 <br />　　 如果所有的索引列都为空，<strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>将认为整个键值为空，而空不可能等于空，因此你可以插入1000条具有相同键值的记录，当然它们都是空！ <br />　　 <br />　　 因为空值不存在于索引列中，所以WHERE子句中对索引列进行空值比较将使<strong style="background-color: rgb(255,255,102); color: black">SQLSERVER</strong>停用该索引 <br />　　 <br />　　 低效（索引失效） <br />　　 SELECT &#8230; <br />　　 FROM DEPARTMENT <br />　　 WHERE DEPT_CODE IS NOT NULL <br />　　 <br />　　 16.使用UNION-ALL和UNION <br />　　 <br />　　 当<strong style="background-color: rgb(160,255,255); color: black">SQL</strong>语句需要UNION两个查询结果集合时，这两个结果集合会以UNION-ALL的方式被合并，然后在输出最终结果前进行排序 <br />　　 <br />　　 如果用UNION ALL替代UNION，这样排序就不是必要了，效率就会因此得到提高 <br />　　 <br />　　 需要注意的是，UNION ALL将重复输出两个结果集合中相同记录，因此还是要从业务需求分析使用UNION ALL的可行性 <br />　　 <br />　　 关于索引下列经验请参考: <br />　　 <br />　　 1).如果检索数据量超过30%的表中记录数，使用索引将没有显著的效率提高 <br />　　 <br />　　 2).在特定情况下，使用索引也许会比全表扫描慢，但这是同一个数量级上的差距；而通常情况下，使用索引比全表扫描要快几倍乃至几千倍！ <img src ="http://www.cnitblog.com/hj627/aggbug/83053.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/hj627/" target="_blank">白开心</a> 2012-07-16 11:10 <a href="http://www.cnitblog.com/hj627/articles/83053.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>递归查询</title><link>http://www.cnitblog.com/hj627/articles/76256.html</link><dc:creator>白开心</dc:creator><author>白开心</author><pubDate>Sat, 29 Oct 2011 09:36:00 GMT</pubDate><guid>http://www.cnitblog.com/hj627/articles/76256.html</guid><wfw:comment>http://www.cnitblog.com/hj627/comments/76256.html</wfw:comment><comments>http://www.cnitblog.com/hj627/articles/76256.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/hj627/comments/commentRss/76256.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/hj627/services/trackbacks/76256.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">with</span><span style="color: #000000">&nbsp;Query(ObjectID,ParentID,Name)<br /><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">as</span><span style="color: #000000"><br /><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" />(<br /><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">起始条件</span><span style="color: #008080"><br /><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;ObjectID,ParentID,Name<br /><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;OT_OrganizationUnit<br /><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">WHERE</span><span style="color: #000000">&nbsp;ObjectID</span><span style="color: #808080">=</span><span style="color: #ff0000">'</span><span style="color: #ff0000">97a059d7-3b0a-41ff-a2c8-d033759c61ea</span><span style="color: #ff0000">'</span><span style="color: #000000"><br /><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">UNION</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">ALL</span><span style="color: #000000"><br /><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">递归条件</span><span style="color: #008080"><br /><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;a.ObjectID,a.ParentID,a.Name<br /><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;OT_OrganizationUnit&nbsp;a<br /><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">INNER</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">JOIN</span><span style="color: #000000">&nbsp;Query&nbsp;b&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000">&nbsp;a.ParentID</span><span style="color: #808080">=</span><span style="color: #000000">b.ObjectID<br /><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" />)<br /><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cnitblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;Query</span></div><img src ="http://www.cnitblog.com/hj627/aggbug/76256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/hj627/" target="_blank">白开心</a> 2011-10-29 17:36 <a href="http://www.cnitblog.com/hj627/articles/76256.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>跨服务器数据访问</title><link>http://www.cnitblog.com/hj627/articles/72603.html</link><dc:creator>白开心</dc:creator><author>白开心</author><pubDate>Sat, 08 Jan 2011 05:19:00 GMT</pubDate><guid>http://www.cnitblog.com/hj627/articles/72603.html</guid><wfw:comment>http://www.cnitblog.com/hj627/comments/72603.html</wfw:comment><comments>http://www.cnitblog.com/hj627/articles/72603.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/hj627/comments/commentRss/72603.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/hj627/services/trackbacks/72603.html</trackback:ping><description><![CDATA[<p>跨服务器数据访问</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008080">--</span><span style="color: #008080">-&nbsp;启用&nbsp;Ad&nbsp;Hoc&nbsp;Distributed&nbsp;Queries</span><span style="color: #008080"><br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">exec</span><span style="color: #000000">&nbsp;sp_configure&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">show&nbsp;advanced&nbsp;options</span><span style="color: #ff0000">'</span><span style="color: #000000">,</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000"><br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">reconfigure</span><span style="color: #000000"><br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">exec</span><span style="color: #000000">&nbsp;sp_configure&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">Ad&nbsp;Hoc&nbsp;Distributed&nbsp;Queries</span><span style="color: #ff0000">'</span><span style="color: #000000">,</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000"><br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">reconfigure</span><span style="color: #000000"><br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000"><br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">OPENDATASOURCE</span><span style="color: #000000">(<br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">SQLOLEDB</span><span style="color: #ff0000">'</span><span style="color: #000000">,<br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">Data&nbsp;Source=server;User&nbsp;ID=sa;Password=sa</span><span style="color: #ff0000">'</span><span style="color: #000000"><br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;).DBName.dbo.TableName<br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">-&nbsp;关闭&nbsp;Ad&nbsp;Hoc&nbsp;Distributed&nbsp;Queries</span><span style="color: #008080"><br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">exec</span><span style="color: #000000">&nbsp;sp_configure&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">Ad&nbsp;Hoc&nbsp;Distributed&nbsp;Queries</span><span style="color: #ff0000">'</span><span style="color: #000000">,</span><span style="color: #800000; font-weight: bold">0</span><span style="color: #000000"><br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">reconfigure</span><span style="color: #000000"><br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">exec</span><span style="color: #000000">&nbsp;sp_configure&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">show&nbsp;advanced&nbsp;options</span><span style="color: #ff0000">'</span><span style="color: #000000">,</span><span style="color: #800000; font-weight: bold">0</span><span style="color: #000000"><br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">reconfigure</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif"  alt="" /></span></div><br /><br />Select * from OPENDATASOURCE(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'SQLOLEDB',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Data Source=10.112.2.153;User ID=sa;Password=sa'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ).库名.dbo.tableA<br />where 条件<br /><img src ="http://www.cnitblog.com/hj627/aggbug/72603.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/hj627/" target="_blank">白开心</a> 2011-01-08 13:19 <a href="http://www.cnitblog.com/hj627/articles/72603.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>存储过程调用DTS包</title><link>http://www.cnitblog.com/hj627/articles/62117.html</link><dc:creator>白开心</dc:creator><author>白开心</author><pubDate>Sun, 25 Oct 2009 15:12:00 GMT</pubDate><guid>http://www.cnitblog.com/hj627/articles/62117.html</guid><wfw:comment>http://www.cnitblog.com/hj627/comments/62117.html</wfw:comment><comments>http://www.cnitblog.com/hj627/articles/62117.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/hj627/comments/commentRss/62117.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/hj627/services/trackbacks/62117.html</trackback:ping><description><![CDATA[参考以下 SQL 语句<br><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">Declare</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@shellSql</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1000</span><span style="COLOR: #000000">)<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">set</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@shellSql</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">dtsrun&nbsp;/S&nbsp;"数据库服务器"&nbsp;/U&nbsp;"登录帐号"&nbsp;/P&nbsp;"数据库密码"&nbsp;/N&nbsp;"SuccessScript"</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">&nbsp;/A&nbsp;"type_id":"19"="'&nbsp;+&nbsp;cast(@type_id&nbsp;&nbsp;as&nbsp;varchar)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;'"&nbsp;/A&nbsp;"filename":"8"="'&nbsp;+&nbsp;@file_name&nbsp;+&nbsp;'"&nbsp;/A&nbsp;"cityID":"19"="'&nbsp;+&nbsp;cast(@cityID&nbsp;as&nbsp;varchar)&nbsp;+&nbsp;'"'</span><span style="COLOR: #008080"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">exec</span><span style="COLOR: #000000">&nbsp;master..xp_cmdshell&nbsp;</span><span style="COLOR: #008000">@shellSql</span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>参考以下文章：<br><a href="http://www.cnblogs.com/Aricc/archive/2008/11/26/1341614.html">http://www.cnblogs.com/Aricc/archive/2008/11/26/1341614.html</a>
<img src ="http://www.cnitblog.com/hj627/aggbug/62117.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/hj627/" target="_blank">白开心</a> 2009-10-25 23:12 <a href="http://www.cnitblog.com/hj627/articles/62117.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Sql Server 2005 分页取数据方法</title><link>http://www.cnitblog.com/hj627/articles/46798.html</link><dc:creator>白开心</dc:creator><author>白开心</author><pubDate>Wed, 16 Jul 2008 15:29:00 GMT</pubDate><guid>http://www.cnitblog.com/hj627/articles/46798.html</guid><wfw:comment>http://www.cnitblog.com/hj627/comments/46798.html</wfw:comment><comments>http://www.cnitblog.com/hj627/articles/46798.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/hj627/comments/commentRss/46798.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/hj627/services/trackbacks/46798.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">WITH</span><span style="COLOR: #000000">&nbsp;OrderedOrders&nbsp;</span><span style="COLOR: #0000ff">AS</span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top>(</span><span style="COLOR: #0000ff">Select</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">*</span><span style="COLOR: #000000">,ROW_NUMBER()&nbsp;</span><span style="COLOR: #0000ff">Over</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">order</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">by</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">[</span><span style="COLOR: #ff0000">ChoiceID</span><span style="COLOR: #ff0000">]</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000">&nbsp;rowNum&nbsp;</span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;OSS_QuestionChoice)<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">SELECT</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">*</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">FROM</span><span style="COLOR: #000000">&nbsp;OrderedOrders&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">WHERE</span><span style="COLOR: #000000">&nbsp;rowNum&nbsp;</span><span style="COLOR: #808080">between</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #800000">50</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">and</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #800000">60</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_167_231_Open_Image onclick="this.style.display='none'; Codehighlighter1_167_231_Open_Text.style.display='none'; Codehighlighter1_167_231_Closed_Image.style.display='inline'; Codehighlighter1_167_231_Closed_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_167_231_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_167_231_Closed_Text.style.display='none'; Codehighlighter1_167_231_Open_Image.style.display='inline'; Codehighlighter1_167_231_Open_Text.style.display='inline';" src="http://www.cnitblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_167_231_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_167_231_Open_Text><span style="COLOR: #008080">/*</span><span style="COLOR: #008080"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;ChoiceID&nbsp;是排序字段名<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;OSS_QuestionChoice&nbsp;是被查询表名<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;from&nbsp;后面可以跟查询条件<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #008080">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">SELECT</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">*</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">FROM</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">select</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">*</span><span style="COLOR: #000000">,ROW_NUMBER()&nbsp;</span><span style="COLOR: #0000ff">Over</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">order</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">by</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">[</span><span style="COLOR: #ff0000">ChoiceID</span><span style="COLOR: #ff0000">]</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000">&nbsp;rowNum&nbsp;</span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;OSS_QuestionChoice&nbsp;)&nbsp;</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000">&nbsp;myTable<br><img src="http://www.cnitblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">where</span><span style="COLOR: #000000">&nbsp;rowNum&nbsp;</span><span style="COLOR: #808080">between</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #800000">50</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">and</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #800000">60</span></div>
<p>&nbsp;</p>
<img src ="http://www.cnitblog.com/hj627/aggbug/46798.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/hj627/" target="_blank">白开心</a> 2008-07-16 23:29 <a href="http://www.cnitblog.com/hj627/articles/46798.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>导出存储过程、函数和触发器</title><link>http://www.cnitblog.com/hj627/articles/37283.html</link><dc:creator>白开心</dc:creator><author>白开心</author><pubDate>Mon, 03 Dec 2007 09:03:00 GMT</pubDate><guid>http://www.cnitblog.com/hj627/articles/37283.html</guid><wfw:comment>http://www.cnitblog.com/hj627/comments/37283.html</wfw:comment><comments>http://www.cnitblog.com/hj627/articles/37283.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/hj627/comments/commentRss/37283.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/hj627/services/trackbacks/37283.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">CREATE</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">Proc</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">[</span><span style="COLOR: #ff0000">dbo</span><span style="COLOR: #ff0000">]</span><span style="COLOR: #000000">.</span><span style="COLOR: #ff0000">[</span><span style="COLOR: #ff0000">Proc_ExportProc</span><span style="COLOR: #ff0000">]</span><span style="COLOR: #000000"><br>(<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">@Filter</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">nvarchar</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">200</span><span style="COLOR: #000000">)</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">''</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">查询条件&nbsp;&nbsp;例如&nbsp;and&nbsp;1=1</span><span style="COLOR: #008080"><br></span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">/*</span><span style="COLOR: #008080"><br>&nbsp;&nbsp;&nbsp;&nbsp;Create&nbsp;By&nbsp;HJ&nbsp;2007-12-3<br>&nbsp;&nbsp;&nbsp;&nbsp;备份存储过程，函数，触发器等，可直接运行<br>&nbsp;&nbsp;&nbsp;&nbsp;2010-4-7，再次整理，当存储过程字符数超过8000时，会出现错误<br>&nbsp;&nbsp;&nbsp;&nbsp;注：导出存储过程，最好使用系统导出脚本功能。<br></span><span style="COLOR: #008080">*/</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">As</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">Begin</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">IF</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@Filter</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">IS</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">NULL</span><span style="COLOR: #000000">&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">SET</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@Filter</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">''</span><span style="COLOR: #000000"><br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Declare</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@Text</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">8000</span><span style="COLOR: #000000">),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">@Name</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">nvarchar</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">100</span><span style="COLOR: #000000">),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">@XType</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">nvarchar</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">20</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">USE&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff00ff">db_name</span><span style="COLOR: #000000">()<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">GO</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Declare</span><span style="COLOR: #000000">&nbsp;myCurrsor&nbsp;</span><span style="COLOR: #0000ff">Cursor</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">For</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Select</span><span style="COLOR: #000000">&nbsp;a.</span><span style="COLOR: #ff0000">[</span><span style="COLOR: #ff0000">Text</span><span style="COLOR: #ff0000">]</span><span style="COLOR: #000000">,b.</span><span style="COLOR: #ff0000">[</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #ff0000">]</span><span style="COLOR: #000000">,b.xtype&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">FROM</span><span style="COLOR: #000000">&nbsp;syscomments&nbsp;a&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">INNER</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">JOIN</span><span style="COLOR: #000000">&nbsp;Sysobjects&nbsp;b&nbsp;</span><span style="COLOR: #0000ff">ON</span><span style="COLOR: #000000">&nbsp;a.id</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">b.id&nbsp;&nbsp;</span><span style="COLOR: #808080">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@Filter</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">WHERE&nbsp;(b.xtype='TR'&nbsp;or&nbsp;b.xtype='FN'&nbsp;or&nbsp;b.xtype='P')&nbsp;+&nbsp;@Filter</span><span style="COLOR: #008080"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Open</span><span style="COLOR: #000000">&nbsp;myCurrsor&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Fetch</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">Next</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;myCurrsor&nbsp;</span><span style="COLOR: #0000ff">into</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@Text</span><span style="COLOR: #000000">,</span><span style="COLOR: #008000">@Name</span><span style="COLOR: #000000">,</span><span style="COLOR: #008000">@XType</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">While</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #008000">@@Fetch_Status</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #800000">0</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">表示读取到数据,相当于&nbsp;ADO&nbsp;中&nbsp;Not&nbsp;Eof&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Begin</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">If</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@XType</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">TR</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Begin</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">IF&nbsp;EXISTS(SELECT&nbsp;1&nbsp;FROM&nbsp;Sysobjects&nbsp;WHERE&nbsp;xtype=</span><span style="COLOR: #ff0000">''</span><span style="COLOR: #ff0000">TR</span><span style="COLOR: #ff0000">''</span><span style="COLOR: #ff0000">&nbsp;AND&nbsp;[name]=</span><span style="COLOR: #ff0000">'''</span><span style="COLOR: #808080">+</span><span style="COLOR: #008000">@Name</span><span style="COLOR: #808080">+</span><span style="COLOR: #ff0000">'''</span><span style="COLOR: #ff0000">)</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DROP&nbsp;TRIGGER&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #808080">+</span><span style="COLOR: #008000">@Name</span><span style="COLOR: #808080">+</span><span style="COLOR: #ff0000">''</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">End</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Else</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">If</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@XType</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">FN</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Begin</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">IF&nbsp;EXISTS(SELECT&nbsp;1&nbsp;FROM&nbsp;Sysobjects&nbsp;WHERE&nbsp;xtype=</span><span style="COLOR: #ff0000">''</span><span style="COLOR: #ff0000">FN</span><span style="COLOR: #ff0000">''</span><span style="COLOR: #ff0000">&nbsp;AND&nbsp;[name]=</span><span style="COLOR: #ff0000">'''</span><span style="COLOR: #808080">+</span><span style="COLOR: #008000">@Name</span><span style="COLOR: #808080">+</span><span style="COLOR: #ff0000">'''</span><span style="COLOR: #ff0000">)</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DROP&nbsp;FUNCTION&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #808080">+</span><span style="COLOR: #008000">@Name</span><span style="COLOR: #808080">+</span><span style="COLOR: #ff0000">''</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">End</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Else</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">If</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@XType</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">P</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Begin</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">IF&nbsp;EXISTS(SELECT&nbsp;1&nbsp;FROM&nbsp;Sysobjects&nbsp;WHERE&nbsp;xtype=</span><span style="COLOR: #ff0000">''</span><span style="COLOR: #ff0000">P</span><span style="COLOR: #ff0000">''</span><span style="COLOR: #ff0000">&nbsp;AND&nbsp;[name]=</span><span style="COLOR: #ff0000">'''</span><span style="COLOR: #808080">+</span><span style="COLOR: #008000">@Name</span><span style="COLOR: #808080">+</span><span style="COLOR: #ff0000">'''</span><span style="COLOR: #ff0000">)</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">&nbsp;&nbsp;&nbsp;DROP&nbsp;PROCEDURE&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #808080">+</span><span style="COLOR: #008000">@Name</span><span style="COLOR: #808080">+</span><span style="COLOR: #ff0000">''</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">End</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Else</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">GOTO</span><span style="COLOR: #000000">&nbsp;NextFetch<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">EXECUTE(</span><span style="COLOR: #ff0000">'''</span><span style="COLOR: #808080">+</span><span style="COLOR: #ff00ff">replace</span><span style="COLOR: #000000">(</span><span style="COLOR: #008000">@Text</span><span style="COLOR: #000000">,</span><span style="COLOR: #ff0000">''''</span><span style="COLOR: #000000">,</span><span style="COLOR: #ff0000">''''''</span><span style="COLOR: #000000">)</span><span style="COLOR: #808080">+</span><span style="COLOR: #ff0000">'''</span><span style="COLOR: #ff0000">)</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">set&nbsp;ANSI_NULLS&nbsp;ON</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">set&nbsp;QUOTED_IDENTIFIER&nbsp;ON</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Print</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">GO</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NextFetch:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Fetch</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">Next</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;myCurrsor&nbsp;</span><span style="COLOR: #0000ff">into</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@Text</span><span style="COLOR: #000000">,</span><span style="COLOR: #008000">@Name</span><span style="COLOR: #000000">,</span><span style="COLOR: #008000">@XType</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">End</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Close</span><span style="COLOR: #000000">&nbsp;myCurrsor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">关闭游标</span><span style="COLOR: #008080"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">Deallocate</span><span style="COLOR: #000000">&nbsp;myCurrsor&nbsp;&nbsp;</span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">删除游标</span><span style="COLOR: #008080"><br></span><span style="COLOR: #0000ff">End</span></div>
<img src ="http://www.cnitblog.com/hj627/aggbug/37283.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/hj627/" target="_blank">白开心</a> 2007-12-03 17:03 <a href="http://www.cnitblog.com/hj627/articles/37283.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>存储过程的创建</title><link>http://www.cnitblog.com/hj627/articles/36481.html</link><dc:creator>白开心</dc:creator><author>白开心</author><pubDate>Sun, 18 Nov 2007 15:15:00 GMT</pubDate><guid>http://www.cnitblog.com/hj627/articles/36481.html</guid><wfw:comment>http://www.cnitblog.com/hj627/comments/36481.html</wfw:comment><comments>http://www.cnitblog.com/hj627/articles/36481.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/hj627/comments/commentRss/36481.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/hj627/services/trackbacks/36481.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;ALTER&nbsp;&nbsp;Proc&nbsp;Proc_CreateInsert(&nbsp;@TableName&nbsp;varchar(50))As/**//*Create&nbsp;BY&nbsp;HJCreate&nbsp;2007-11-18*/Begin&nbsp;set&nbsp;nocount&nbsp;on&nbsp;--&nbsp;数字型字段&nbsp...&nbsp;&nbsp;<a href='http://www.cnitblog.com/hj627/articles/36481.html'>阅读全文</a><img src ="http://www.cnitblog.com/hj627/aggbug/36481.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/hj627/" target="_blank">白开心</a> 2007-11-18 23:15 <a href="http://www.cnitblog.com/hj627/articles/36481.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>事务  游标  函数</title><link>http://www.cnitblog.com/hj627/articles/6665.html</link><dc:creator>白开心</dc:creator><author>白开心</author><pubDate>Fri, 17 Feb 2006 01:49:00 GMT</pubDate><guid>http://www.cnitblog.com/hj627/articles/6665.html</guid><wfw:comment>http://www.cnitblog.com/hj627/comments/6665.html</wfw:comment><comments>http://www.cnitblog.com/hj627/articles/6665.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/hj627/comments/commentRss/6665.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/hj627/services/trackbacks/6665.html</trackback:ping><description><![CDATA[<p>记不住,放这里使用的时候参考用<br />事务: 使用 RollBack Tran 滚回时,当事务中SQL语句出现异常,则事务中的SQL全部不执行.<br />--------------------------<br />Create Procedure PrintClerkForOneAndOne<br />As<br />Begin<br />Declare @ClerkID int<br />Declare @ClerkName varchar<br />&nbsp;Begin Tran&nbsp;&nbsp; --开始事务<br />&nbsp;&nbsp;Declare myCurrsor Cursor For&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --声明游标&nbsp; <br />&nbsp;&nbsp;&nbsp;Select ClerkID,ISNULL(ClerkName,'黄杰') as ClerkName from BM_Clerk<br />&nbsp;&nbsp;Open myCurrsor&nbsp;&nbsp; --打开游标<br />&nbsp;&nbsp;&nbsp;Fetch Next from myCurrsor into @ClerkID,@ClerkName&nbsp; --读取一条游标中数据存入变量中<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;While @@Fetch_Status = 0&nbsp;&nbsp; --表示读取到数据,相当于 ADO 中 Not Eof&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;Begin<br />&nbsp;&nbsp;&nbsp;Print @ClerkID Print @ClerkName&nbsp; --打印出结果<br />&nbsp;&nbsp;&nbsp;Fetch Next from myCurrsor into @ClerkID,@ClerkName&nbsp; --下一条，相当 ADO 中 MoveNext<br />&nbsp;&nbsp;&nbsp;End<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;Close myCurrsor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --关闭游标<br />&nbsp;&nbsp;&nbsp;Deallocate myCurrsor&nbsp; --删除游标<br />&nbsp;If @@ERROR &gt; 0 RollBack Tran&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --回滚事务<br />&nbsp;Commit Tran&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --结束事务,在使用 Commit 后，就不可以回滚事务<br />End<br /><br />*****************************<br />数据库自定义函数 <br />Create Function SelNextClerkID<br />(@ClerkID int)<br />Returns int As<br />Begin<br />&nbsp;Declare @NextClerkID int<br />&nbsp;If Exists(Select 1 from BM_Clerk Where ClerkID &gt; @ClerkID)&nbsp;&nbsp; --如果不存在比 @ClerkID 大的记录，则返回 @ClerkID<br />&nbsp;&nbsp;Select Top 1 @NextClerkID = ClerkID from BM_Clerk Where ClerkID &gt; @ClerkID Order By ClerkID<br />&nbsp;Else<br />&nbsp;&nbsp;Set @NextClerkID = @ClerkID<br />&nbsp;Return @NextClerkID<br />End</p>
<p>调用: Select Dbo.SelNextClerkID(9)<br /><br />Create function getAsciiLen<br />(<br />@Str varchar(800)<br />)<br />/*<br />返回字符串的长度，中文2个字符，英文1个字符<br />*/<br />Returns int AS&nbsp; <br />Begin<br />&nbsp;Declare @i int<br />&nbsp;Declare @Len int<br />&nbsp;Set @i=1 <br />&nbsp;Set @Len=0<br />&nbsp;While @i &lt;= Len(@Str)<br />&nbsp;Begin<br />&nbsp;&nbsp;if(ascii(SubString(@Str,@i,1))&gt;128)<br />&nbsp;&nbsp;&nbsp;Set @Len = @Len + 2<br />&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;Set @Len = @Len + 1<br />&nbsp;&nbsp;Set @i = @i+1<br />&nbsp;End<br />&nbsp;Return @Len<br />End <br />*****************************<br /><br />--------------------<br />--打印出所有没有设置主键的表<br />Declare @Id int<br />Declare @name varchar(300)<br />Declare myCurrsor Cursor For&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --声明游标<br />&nbsp;Select id,[name] from Sysobjects where xtype='U'<br />Open myCurrsor <br />Fetch Next from myCurrsor into @Id,@name&nbsp; --读取一条游标中数据存入变量中<br />&nbsp;&nbsp; While @@Fetch_Status = 0&nbsp;&nbsp; --表示读取到数据,相当于 ADO 中 Not Eof&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; Begin<br />&nbsp;If Not Exists(Select 1 from Syscolumns where <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#105;&#100;&#61;&#64;&#105;&#100;">id=@id</a> and typestat=1)<br />&nbsp;Print @name&nbsp;&nbsp; --打印出所有没有设置主键的表<br />&nbsp;&nbsp; Fetch Next from myCurrsor into @Id,@name --下一条，相当 ADO 中 MoveNext<br />&nbsp;&nbsp; End<br />&nbsp;Close myCurrsor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --关闭游标<br />&nbsp;&nbsp; Deallocate myCurrsor&nbsp; --删除游标<br />-----------------<br /><br />--------------------<br />--打印出所有主键为递增的表<br />Declare @Id int<br />Declare @name varchar(300)<br />Declare myCurrsor Cursor For&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --声明游标<br />&nbsp;Select id,[name] from Sysobjects where xtype='U'<br />Open myCurrsor <br />Fetch Next from myCurrsor into @Id,@name&nbsp; --读取一条游标中数据存入变量中<br />&nbsp;&nbsp; While @@Fetch_Status = 0&nbsp;&nbsp; --表示读取到数据,相当于 ADO 中 Not Eof&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; Begin<br />&nbsp;If Exists(Select 1 from Syscolumns where <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#105;&#100;&#61;&#64;&#105;&#100;">id=@id</a> and colstat=1)<br />&nbsp;Print @name&nbsp;&nbsp; --打印出所有主键为递增的表<br />&nbsp;&nbsp; Fetch Next from myCurrsor into @Id,@name --下一条，相当 ADO 中 MoveNext<br />&nbsp;&nbsp; End<br />&nbsp;Close myCurrsor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --关闭游标<br />&nbsp;&nbsp; Deallocate myCurrsor&nbsp; --删除游标<br />----------------------<br /><br /><br /><br />***********************************************************<br />SQL 每个表的作用&nbsp;<br />syscomments&nbsp;&nbsp; 记录存储过程内容的表<br />sysaltfiles&nbsp;&nbsp;&nbsp; 主数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 保存数据库的文件 <br />syscharsets&nbsp;&nbsp;&nbsp; 主数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 字符集与排序顺序 <br />sysconfigures&nbsp; 主数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 配置选项 <br />syscurconfigs&nbsp; 主数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当前配置选项 <br />sysdatabases&nbsp;&nbsp; 主数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 服务器中的数据库 <br />syslanguages&nbsp;&nbsp; 主数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 语言 <br />syslogins&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 登陆帐号信息 <br />sysoledbusers&nbsp; 主数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 链接服务器登陆信息 <br />sysprocesses&nbsp;&nbsp; 主数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 进程 <br />sysremotelogins主数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 远程登录帐号 <br />syscolumns&nbsp;&nbsp;&nbsp;&nbsp; 每个数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 列 <br />sysconstrains&nbsp; 每个数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 限制 <br />sysfilegroups&nbsp; 每个数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 文件组 <br />sysfiles&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 每个数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 文件 <br />sysforeignkeys 每个数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 外部关键字 <br />sysindexs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 每个数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 索引 <br />sysmenbers&nbsp;&nbsp;&nbsp;&nbsp; 每个数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 角色成员 <br />sysobjects&nbsp;&nbsp;&nbsp;&nbsp; 每个数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所有数据库对象 <br />syspermissions 每个数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 权限 <br />systypes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 每个数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用户定义数据类型 <br />sysusers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 每个数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用户<br />&nbsp;***************************************************************<br /><br />备份还原<br />backup database CTS TO DISK='E:\aaa'<br />Restore DataBase CTS From Disk='E:\aaa'<br /><br />************************************<br />每个部门取前两条记录<br />Select * from BM_Clerk a where ClerkID in <br />(Select top 2 ClerkID from BM_Clerk where DeptID=a.DeptID) order BY DeptID<br /><br />**********************************************************<br />exec sp_executesql N'update QT_Eletricisolate Set SampNo =&nbsp; @SampNo ,TrustNo =&nbsp; @TrustNo ,Resis1 =&nbsp; @Resis1 ,Resis2 =&nbsp; @Resis2 ,Resis3 =&nbsp; @Resis3 ,SampType = @SampType&nbsp; where ID= @ID ', <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#78;&#39;&#64;&#83;&#97;&#109;&#112;&#78;&#111;">N'@SampNo</a> nvarchar(4000),@TrustNo nvarchar(4000),@Resis1 nvarchar(4000),@Resis2 nvarchar(4000),@Resis3 nvarchar(4000),@SampType nvarchar(4000),@ID nvarchar(4000)', @SampNo = N'G2007(81)01301', @TrustNo = N'G2007(81)0130', @Resis1 = NULL, @Resis2 = NULL, @Resis3 = NULL, @SampType = N'54', @ID = N'3666'<br />******************************************<br />exec sp_executesql N'insert into QT_EletricRemainValue(ID,TrustNo,SampNo,SampType,Value1,Value2,Value3,Value4,Value5,Value6,Value7,Value8,Value9,Value10,Value11,Value12,Value13,Value14,Value15) values ( @ID , @TrustNo , @SampNo , @SampType , @Value1 , @Value2 , @Value3 , @Value4 , @Value5 , @Value6 , @Value7 , @Value8 , @Value9 , @Value10 , @Value11 , @Value12 , @Value13 , @Value14 , @Value15 )', <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#78;&#39;&#64;&#73;&#68;">N'@ID</a> nvarchar(4000),@TrustNo nvarchar(4000),@SampNo nvarchar(4000),@SampType nvarchar(4000),@Value1 nvarchar(4000),@Value2 nvarchar(4000),@Value3 nvarchar(4000),@Value4 nvarchar(4000),@Value5 nvarchar(4000),@Value6 nvarchar(4000),@Value7 nvarchar(4000),@Value8 nvarchar(4000),@Value9 nvarchar(4000),@Value10 nvarchar(4000),@Value11 nvarchar(4000),@Value12 nvarchar(4000),@Value13 nvarchar(4000),@Value14 nvarchar(4000),@Value15 nvarchar(4000)', @ID = N'202', @TrustNo = N'G2007(81)0130', @SampNo = N'G2007(81)01301', @SampType = N'54', @Value1 = NULL, @Value2 = NULL, @Value3 = NULL, @Value4 = NULL, @Value5 = NULL, @Value6 = NULL, @Value7 = NULL, @Value8 = NULL, @Value9 = NULL, @Value10 = NULL, @Value11 = NULL, @Value12 = NULL, @Value13 = NULL, @Value14 = NULL, @Value15 = NULL<br />**************************************<br />exec sp_executesql N'delete from&nbsp; QT_EletricDistClimp where TrustNo =&nbsp; @TrustNo&nbsp; and SampType = @SampType ', <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#78;&#39;&#64;&#84;&#114;&#117;&#115;&#116;&#78;&#111;">N'@TrustNo</a> nvarchar(4000),@SampType nvarchar(4000)', @TrustNo = N'G2007(81)0130', @SampType = N'54'<br /><br /><br />索引的创建<br /></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">--</span><span style="color: #008080">&nbsp;创建测试表</span><span style="color: #008080"><br /></span><span style="color: #0000ff">Create</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">Table</span><span style="color: #000000">&nbsp;MyTest<br />(<br />&nbsp;&nbsp;&nbsp;&nbsp;ID&nbsp;</span><span style="color: #000000; font-weight: bold">int</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">primary</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">key</span><span style="color: #000000">,<br />&nbsp;&nbsp;&nbsp;&nbsp;UserName&nbsp;</span><span style="color: #000000; font-weight: bold">nvarchar</span><span style="color: #000000">(</span><span style="color: #800000; font-weight: bold">32</span><span style="color: #000000">)<br />)<br /><br /></span><span style="color: #008080">--</span><span style="color: #008080">&nbsp;创建聚集索引</span><span style="color: #008080"><br /></span><span style="color: #0000ff">Create</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">CLUSTERED</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">Index</span><span style="color: #000000">&nbsp;MyTestIndex&nbsp;</span><span style="color: #0000ff">On</span><span style="color: #000000">&nbsp;MyTest(UserName)&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">PRIMARY</span><span style="color: #ff0000">]</span><span style="color: #000000"><br /></span><span style="color: #008080">--</span><span style="color: #008080">&nbsp;删除索引</span><span style="color: #008080"><br /></span><span style="color: #0000ff">Drop</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INDEX</span><span style="color: #000000">&nbsp;MyTestIndex&nbsp;</span><span style="color: #0000ff">On</span><span style="color: #000000">&nbsp;MyTest<br /><br /></span><span style="color: #008080">--</span><span style="color: #008080">&nbsp;创建非聚集索引</span><span style="color: #008080"><br /></span><span style="color: #0000ff">Create</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">Index</span><span style="color: #000000">&nbsp;MyTestIndex&nbsp;</span><span style="color: #0000ff">On</span><span style="color: #000000">&nbsp;MyTest(UserName)&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">PRIMARY</span><span style="color: #ff0000">]</span><span style="color: #000000"><br /></span><span style="color: #008080">--</span><span style="color: #008080">&nbsp;删除索引</span><span style="color: #008080"><br /></span><span style="color: #0000ff">Drop</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INDEX</span><span style="color: #000000">&nbsp;MyTestIndex&nbsp;</span><span style="color: #0000ff">On</span><span style="color: #000000">&nbsp;MyTest<br /></span><span style="color: #008080">--</span><span style="color: #008080">&nbsp;删除测试表</span><span style="color: #008080"><br /></span><span style="color: #0000ff">Drop</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">Table</span><span style="color: #000000">&nbsp;MyTest</span></div><br /><br />-- 导出所有列<br />
<p>Declare @Columns nvarchar(2000),<br />@TableName nvarchar(32)<br />Set @Columns = ''<br />Set @TableName = 'OT_User'</p>
<p>SELECT @Columns=@Columns+','+a.name FROM syscolumns a inner join sysobjects b ON a.id=b.id where <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#98;&#46;&#110;&#97;&#109;&#101;&#61;&#64;&#84;&#97;&#98;&#108;&#101;&#78;&#97;&#109;&#101;">b.name=@TableName</a></p>
<p>Print @Columns</p><img src ="http://www.cnitblog.com/hj627/aggbug/6665.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/hj627/" target="_blank">白开心</a> 2006-02-17 09:49 <a href="http://www.cnitblog.com/hj627/articles/6665.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>