首页 新闻 会员 周边

在function里面写insert 没反应,求解呀?

0
悬赏园豆:10 [已解决问题] 解决于 2013-08-13 12:59


create FUNCTION FunAddLog
(
@Logger nvarchar(255),
@MESSAGE nvarchar(max)
)
RETURNS int
AS
BEGIN
DECLARE @id int

insert INTO [DHLCRM_NEW].[dbo].[Log]
([CreatedOn]
,[Thread]
,[Level]
,[Logger]
,[Message])
VALUES
(GETDATE()
,'提交表单'
,'level'
,'g'
,'gg'
)
SELECT @id= @@identity
RETURN @id
END

 

这是向调用function,向一个表添加数据,不知道为啥没反应。。。。求解

 

生成函数的时候报错,她说:

Invalid use of side-effecting or time-dependent operator in 'INSERT' within a function.

红萝卜的主页 红萝卜 | 菜鸟二级 | 园豆:240
提问于:2013-08-12 09:33
< >
分享
最佳答案
1

1、测试,在数据库执行该函数,看结果;

2、如果数据库执行成功,那么检查代码吧~

收获园豆:7
幻天芒 | 高人七级 |园豆:37175 | 2013-08-12 11:27

运行函数都直接报错

Invalid use of side-effecting or time-dependent operator in 'INSERT' within a function.的呢

我想着应该那些地方不对劲吧

直接写insert INTO [DHLCRM_NEW].[dbo].[Log]
([CreatedOn]
,[Thread]
,[Level]
,[Logger] 
,[Message]) 
VALUES
(GETDATE()
,'提交表单'
,'level'
,'g'
,'gg' 
)

是OK的,没问题的

红萝卜 | 园豆:240 (菜鸟二级) | 2013-08-12 12:33

@小甜瓜: 那就修改为存储过程吧,估计函数不允许修改数据库的数据吧,以前没怎么注意...

看下这个链接:http://www.cnblogs.com/smailxiaobai/archive/2011/11/17/2252958.html

幻天芒 | 园豆:37175 (高人七级) | 2013-08-12 12:49
其他回答(2)
0

把GETDATE() 定义成一个变量试试。

收获园豆:1
Eric.Chen | 园豆:175 (初学一级) | 2013-08-12 10:11
0

为什么用function,用存储过程,然后调用存储过程不行吗?

收获园豆:2
dudu | 园豆:31003 (高人七级) | 2013-08-12 10:51

 存储过程OK了,但是不明白为什么function不行的呢? 同事告诉我function写insert是不行的 不知道为啥

支持(0) 反对(0) 红萝卜 | 园豆:240 (菜鸟二级) | 2013-08-12 12:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册