你看看联机帮助,在SQL中函数的用法!

解决方案 »

  1.   

    我已经看过了,不过还是不知道错在哪了...
    在存储过程中这样的语句是没有问题的..为什么函数中就不行呢?
    下面在我在联机帮助中找的一段,感觉和我写的没有什么差别啊!!
    UPDATE @reports
          SET processed = 1
          WHERE processed = 0
      

  2.   

    把declare @money1 smallmoney,@money2 smallmoney放到前面申明
      

  3.   

    未在下面的列表中列出的语句不能用在函数主体中。 赋值语句。
    控制流语句。
    DECLARE 语句,该语句定义函数局部的数据变量和游标。
    SELECT 语句,该语句包含带有表达式的选择列表,其中的表达式将值赋予函数的局部变量。
    游标操作,该操作引用在函数中声明、打开、关闭和释放的局部游标。只允许使用以 INTO 子句向局部变量赋值的 FETCH 语句;不允许使用将数据返回到客户端的 FETCH 语句。
    INSERT、UPDATE 和 DELETE 语句,这些语句修改函数的局部 table 变量。
    EXECUTE 语句调用扩展存储过程。 --------------------
    update语句只能改变函数的局部table变量,不能改变数据库中的表!!!
      

  4.   

    谢谢 wzh1215(四脚蛇),看来我看书太过肤浅了..