CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

请问一个简单的问题,关于如何能在局部变量里面用text作为数据类型。

楼主greytrack(沙滩中的鱼)2006-03-02 09:50:43 在 MS-SQL Server / 基础类 提问

有表UserRelation如下,  
  Uid(varchar(16))             AllParent(text)             AllChild(text)  
   
  admin                                         0                                   R0001,R0002,R0003  
  R0001                                     admin                                 R0002,R0003  
  R0002                                     admin,R0001                     R0003  
  R0003                                     admin,R0004  
   
   
  现在要插入一条数据,并且对与所有的父亲的AllChild字段都加入新数据的Uid.  
   
  但是存储过程中的局部变量的数据类型不能是text  
  declare   @strAllParent   text是错误的  
  所以我用varchar(8000)代替,但是当数据量大时,varchar(8000)肯定不行了,请问有什么办法在存储过程中用text。因为varchar(8000)肯定不够的,如何在局部变量里面用text  
   
   
   
  我做的代码如下  
  create   procedure   proc_AddUser  
  @Uid     --要插入的用户名  
  @Parent     --父亲  
  as  
   
  declare   @strAllParent   varchar(8000)  
  declare   @strAllChild   varchar(8000)  
  set   @strAllParent=(select   convert(varchar(8000),AllParent)   from   UserRelation   where   Uid=@Parent)  
  if   @strAllParent<>'0'  
  begin  
  set   @strAllParent=@strAllParent+','+@Parent  
  end  
  else  
  begin  
  set   @strAllParent=@Parent  
  end  
  --先插入  
  insert   UserRelation(Uid,AllParent,AllChild)  
  values(@Uid,@strAllParent,'')  
   
  --后对于所有父亲都加一个儿子  
  declare   @tempUid   nvarchar(16)  
  declare   UserRelation_cur   cursor   for  
  select   Uid,AllChild   from   UserRelation   where   Uid   in(@strAllParent)  
  open   UserRelation_cur  
  fetch   next   from   UserRelation_cur  
  into   @tempUid,@strAllChild  
  while   @@fetch_status=0  
  begin  
  if   @strAllChild=''  
  begin  
  update   UserRelation  
  set   AllChild=@Uid  
  where   Uid=@tempUid  
  end  
  else  
  begin  
  update   UserRelation  
  set   AllChild=@strAllChild+','+@Uid  
  where   Uid=@tempUid  
  end  
  fetch   next   from   UserRelation_cur  
  into   @tempUid,@strAllChild  
  end  
  close   UserRelation_cur  
  deallocate   UserRelation_cur  
   
  go 问题点数:20、回复次数:2Top

1 楼greytrack(沙滩中的鱼)回复于 2006-03-02 09:57:27 得分 0

自己顶下,怎么没人来Top

2 楼wgsasd311(自强不息)回复于 2006-03-02 10:06:12 得分 20

局部变量是不能用TEXT,NTEXT,IMAGE等类型的,楼主可以考虑用一个临时表来存储大数据,然后再从表里读Top

相关问题

  • 对于局部变量,text、ntext 和 image 数据类型无效
  • 关于局部变量!!!
  • 局部变量与栈
  • ◆过程中声明了类类型的局部变量,并且创建了他的实例,过程结束后这个变量会怎样?
  • delphi里没静态局部变量?
  • 关于函数返回局部变量
  • 局部变量作返回值
  • 局部变量重名问题
  • 局部变量传指针问题
  • 你理解了吗?普通局部变量、线程局部变量的区别,欢迎讨论

关键词

  • 数据
  • userrelation
  • strallparent
  • 局部变量
  • allchild
  • allparent
  • strallchild
  • tempuid
  • uid
  • 类型

得分解答快速导航

  • 帖主:greytrack
  • wgsasd311

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo