SQL Server小记

1100阅读 0评论2017-01-05 lsstarboy
分类:SQLServer

写了一个函数,耗了大半天,由衷感叹微软的东东!!!


  1. ALTER function [dbo].[test] ( @aid varchar( 80 ))
  2. returns VARCHAR(200)
  3. as
  4. begin
  5.   declare
  6.     @top_ag VARCHAR(80),
  7.     @aname VARCHAR(80),
  8.         @t_root VARCHAR(80),
  9.     @root VARCHAR(200);
  10.     set @root = '';
  11.     set @top_ag = 't01';

  12.     select @t_root=parent_name from agent_info where login_name = @aid AND parent_name !=@top_ag;
  13.     while @@rowcount <> 0
  14.     BEGIN
  15.             --set @root = @root + '\' + @t_root;
  16.          set @root= '/' + @t_root + @root;
  17.          set @aname = @t_root;
  18.          select @t_root=parent_name from agent_info where login_name = @aname AND parent_name !=@top_ag;
  19.     END
  20.        set @root = @root + '/' + @aid;
  21.     --set @root=@aid;
  22.     return @root;
  23. end
1、如果@root不初始化,则后面所有的+都是空,都为null,并且没有任何提示;
2、调用时,这种“标值函数”,必须当sum等使用,不能用在from 后面,表函数必须用在from后面;
3、调用时,如果不加dbo.test(),则会报错,必须 加dbo,并且 dbo上面还不能写[]号。
4、函数中如果有insert,那么就死定了。


上一篇:putty和SSH Secure Shell Client的登录历史记录
下一篇:下载Google Play 上的apk到本地电脑