SQL 自定义函数中不能使用insert ,update等等的语句吗?

SQL 自定义函数中不能使用insert ,update之类的语句吗????
本帖最后由 Pc498471249 于 2014-05-30 10:25:03 编辑
在自定义函数中我需要更新表的数据, 但是SQL编译器提示说

"在函数内对带副作用的运算符update的使用无效" 

update带副作用- -???? 尼玛编译器你给我过来 我保证不打死你

------解决方案--------------------
你在自定义函数中查询出来了 在外部调用update来更新不就行了。
------解决方案--------------------
不能在函数中使用insert,update,delete,create等语句
NEWID() 都不能用的。

你用存储过程吧。

------解决方案--------------------
不允许使用,另想出路吧。
------解决方案--------------------
自定义函数是可以使用update语句的,只是不能用于实体表的更新,只能用于表变量的更新。
create function dbo.f_table_abc (@id int)
  returns  @t table (id int) 
as

begin
   insert into @t select @id
   update @t set id=ID+1
  return
end
引用:
你在自定义函数中查询出来了 在外部调用update来更新不就行了。

------解决方案--------------------
引用:
自定义函数是可以使用update语句的,只是不能用于实体表的更新,只能用于表变量的更新。
create function dbo.f_table_abc (@id int)
  returns  @t table (id int) 
as

begin
   insert into @t select @id
   update @t set id=ID+1
  return
end
Quote: 引用:

你在自定义函数中查询出来了 在外部调用update来更新不就行了。

------解决方案--------------------
既然是函数,就不要干这种偷鸡摸狗的事啦,函数就是算出一个结果,而不是把结果存到表中,
不过楼主实在想干,可以试试 CLR,但是不能确定就可以