设为首页 收藏本站
查看: 659|回复: 0

[经验分享] SQL练手(SQL Server 2000)

[复制链接]

尚未签到

发表于 2016-10-30 05:13:10 | 显示全部楼层 |阅读模式
不写sql好久,都有些陌生了,刚好朋友问我一个问题,就顺便写了这些


  • 取得表的结构属性
select * from information_schema.columns  where  table_name='authors';


  • 初级游标使用
要完成的一个小功能:将一个数据表的列变成行,将某一单行相应的列值放到其右边。具体效果为图片中所示。
说明:下面的存储过程在SQL Server 2000上成功运行,使用自带的pubs数据库authors表。
   sql 代码
 

  • create PROC sp_row_col @au_id varchar(50)  
  • as        
  •     /* 声明游标 */  
  •     declare colCursor CURSOR for   
  •     select column_name from information_schema.columns where table_name='authors'; /* 取得列名 */  
  •       
  •     declare @col varchar(50);  
  •     declare @colValue varchar(100);  
  •     declare @sqlStr varchar(200)  
  •   
  •     open colCursor;  /* 打开游标 */  
  •     fetch next from colCursor into @col;  
  •     while @@FETCH_STATUS=0  /* 系统变量@@FETCH_STATUS为0表示FETCH语句成功,-1:失败或此行不在结果集中,-2:被提取的行不存在. 注:不同的DBMS这里有所不同*/  
  •     begin  
  •         set @sqlStr = 'declare valCursor CURSOR for SELECT '+ @col + ' FROM authors where au_id='''+@au_id+''''; /* 用变量作select列名的解决办法,不知道还有没有更好一些的? */  
  •         exec (@sqlStr);  
  •           
  •         open valCursor;  
  •         fetch next from valCursor into @colValue;             
  •         close valCursor /* 关闭游标 */  
  •         deallocate valCursor /* 释放游标 */  
  •           
  •         insert into row_col values(@col, @colValue);  
  •         fetch next from colCursor into @col;  
  •     end  
  •     close colCursor /* 关闭游标 */  
  •     deallocate colCursor /* 释放游标 */   
  • return  
  •   
  • go   
  • use pubs;  
  • create table row_col (column_name varchar(50), col_value varchar(50));  
  • exec sp_row_col '172-32-1176' 

  • select * from row_col;  
  • select * from authors;
  •  



ps: 写这些google了N多次,主要是原来都还没有用过游标,汗ing,还有就是解决如何在语句中嵌入变量这个问题。 开始慢慢地体会到自己知识的浅薄了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-293026-1-1.html 上篇帖子: sql server复制编程 下篇帖子: SQL server 2005 express 启用server认证
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表