小编典典

使用无效的副作用运算符在函数中插入

sql

我的sql函数中有以下代码:

if @max_chi > -999
begin
    INSERT INTO CH_TABLE(X1, X2, VALUE)
    VALUES(cur_out.sessionnumber, maxpos, max_chi)

    commit
end

以下是SQL Server 2008查询,它给我一个错误:

在函数中无效使用副作用运算符“ INSERT”。

为什么我不允许这样做?我该怎么做才能解决此问题?


阅读 208

收藏
2021-03-23

共1个答案

小编典典

您不能使用将数据 插入基表中的功能 。函数 返回 数据。这被列为第一个
文档中的限制

用户定义的函数不能用于执行修改数据库状态的操作。

“修改数据库状态”包括更改数据库中的任何数据(尽管表变量是OP大约3年前就不会关心的明显例外-该表变量仅在函数调用期间有效,并且不影响基础表)。

您应该使用存储过程,而不是函数。

2021-03-23