在函数中使用delete或update命令

时间:2010-05-25 05:41:20

标签: database sql-server-2005

我们可以在sql server 2005数据库或任何其他数据库的函数内使用delete或update命令吗?

2 个答案:

答案 0 :(得分:2)

如果您尝试在函数内使用UPDATE,您将获得:

Server: Msg 443, Level nn, State 1, Procedure function_Name, Line nn
Invalid use of 'UPDATE' within a function.

为避免发生此错误,请确保在用户定义的函数中不使用UPDATE语句,除非它正在更新本地表变量。如果确实需要在表上使用UPDATE语句,则必须使用存储过程而不是用户定义的函数。

Create Function

答案 1 :(得分:0)

不,您不能在基表上使用任何DML语句(INSERT,UPDATE和DELETE)。 UDF的另一个问题是不允许从UDF内部调用返回非确定性值的SQL函数。虽然UDF有自己的优点,但它们可以在Select,Where或Case语句中使用。可以在连接中使用。