计算机世界日报
返回首页 产品报价 实用技巧 国产软件 技术天地 站点精选

计算机世界展览会日报

  综合要闻
  企业&人.com
  产品与技术
  网络与通信
  市场与渠道
  99全文检索

CCW网站

  网络世界
  微电脑世界
  IT经理世界
  CCW展览
  信息服务中心   家用电脑世界

兄弟刊物

  电子与信息化
  今日电子
  中国新闻科技
  电子知识产权
  电子产品世界

网上专递

  Linux园地
  友情链接
  冬涛谈法
Dongtao on Law

98内容总汇



实用技巧

从SQL Server中提取索引信息

北京市卫生电子计算机中心
张猛

---- 在使用 SQL Server 表时,经常需要取得表的索引关键字信息。例如:为了减少网络流量,数据校正的工作留在本地,必须在本地数据库上施行与远程数据库相同的商业规则。但是远程数据库上的规则修改后,本地规则的同步更新无法保证。必须使用有效的程序,能够取得远程数据库上的规则,才能保证本地规则与远程同步。

---- 使用存储过程 sp_helpindex 可以从SQL Server 返回索引信息。存储过程sp_helpindex 返回一个cursor,cursor的内容就是指定表的索引信息。

---- sp_helpindex 返回的cursor中包含的字段有:

     字段名		说明
INDEX_NAME		索引名称.
INDEX_DESCRIPTION	索引说明
INDEX_KEYS		索引表达式.

---- 下面的例程有效地说明了sp_helpindex的具体使用方法:

---- * Sp_index.prg

---- * 定义服务器名称.,在实际使用时请用实际的SQL SERVER服务器名称代替

      #DEFINE Connect_String 'DRIVER=
      {SQL Server};SERVER=MY_SERVER;' + ;
         'DATABASE=PUBS;UID=sa;PWD='

      * 建立一个包含返回信息的 cursor 
      CREATE CURSOR SYS_Indexes (Table_Name
      c(128), Index_Name c(128), ;
         Index_Description c(128), Index_Keys c(128))
      * 连接 SQL Server.
      gnConnHandle=SQLSTRINGCONN(Connect_String)
      IF gnConnHandle>0
         * 取得 SQL Server 中可以使用的表的数量
         SQLConnTables=SQLTABLES(gnConnHandle)
         IF SQLConnTables>0
            SELECT SQLResult
            INCnt=0
            DO WHILE !EOF()
      * 建立一个执行存储过程的命令串
      SQLCommand="sp_helpindex " + ALLTRIM(Table_Name)
      * 执行存储过程,把数据返回 cursor.
      =SQLEXEC(gnConnHandle,SQLCommand,'tmp_sys_data')
      * 转到cursor 所在的工作区
      SELECT tmp_sys_data
      INSERT INTO SYS_Indexes ;
         VALUES ;
         (SQLResult.table_name, tmp_sys_data.Index_Name,;
         tmp_sys_data.Index_Description, ;
         tmp_sys_data.Index_Keys)
      SELECT SQLResult
      SKIP
            ENDDO
            =SQLDISCONN(gnConnHandle)
         ENDIF
      ENDIF
      SELECT SYS_Indexes
      BROW LAST
      CLOSE ALL
      RETURN

---- 该程序适用于Visual FoxPro 3.0以上各版本。

 
免 费 订 阅

实用技巧分类

Office应用
CAD
C、C++
数据库应用
Delphi
Internet应用
Java
Notes应用
操作系统应用
PowerBuilder
VB
Visual Foxpro
其他类
上周 排行榜
如 何 投 稿 ?

编者的话

在日常的工作生活中, 我们对计算机软硬件技术的应用开发肯定有许多的心得体会, 拿来和众人分享:让别人得到他们想要的,使自己找到苦苦寻觅的; 小的点点滴滴,大的工程系统,这里都需要。投稿 的关键在“技巧”二 字,知他人所不知,这样的稿件本栏最最欢迎! 大家公认的 好文章自然会有好的奖励。希望每个人 在这里都有所收获...

r2.gif (980 bytes)
  中国惠普
  3Com中国
  Motorola中国
  CA中国
  Cabletron
  Sony在中国
  西门子WinCC
  爱普生中国
  中国建设银行
  德州仪器(TI)
  问博医药


中国计算机世界出版服务公司版权所有