UDF里的UPDATE只能用来修改函数的局部 table 变量。

解决方案 »

  1.   

    呵呵,老兄阿,和我一样的问题,不但update什么delete,insert的统统不行!
      

  2.   

    是啊,update不行的时候我也试过delete + insert :(
    sigh,害得我写了一个过程来做,只是调用好麻烦啊。
    T-sql怎么这样?越来越觉得PL/SQL是一种非常优美的语言了。
      

  3.   

    不可以。
    可能MS是考慮到了權限問題吧(比如某User對一UDF有權限,可對某一Table不具刪/寫權限,但UDF中用到INSERT/UPDATE等東西)瞎猜的。
      

  4.   

    按你的这个程序的写法,其实我是觉得是有点问题的,读一下最大值,也不管有没有加入新记录,就将这个最大值加一吗?
    我觉得你还不如只在UDF里读出最大值,用触发器在增加新记录时将这个值加一。另外也不明白为什么不用IDENTITY呢?优不优美与这没什么关系吧?语法都是会有些约束条件的,还有人跟我说PL/SQL不好呢。
      

  5.   

    TO icevi(按钮工厂) (  ) 
    你发的时候我正好揭帖,不好意思了。
    我刚学SQL Server,还请大家多多指教,可能是用Oracle比较多的缘故吧,难免有点成见,请多包涵 :)
    开始我也是用的identity,只是要在程序中对这个序列号做若干处理,所以用了一个numeric型的字段。