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.
1、测试,在数据库执行该函数,看结果;
2、如果数据库执行成功,那么检查代码吧~
运行函数都直接报错
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的,没问题的
@小甜瓜: 那就修改为存储过程吧,估计函数不允许修改数据库的数据吧,以前没怎么注意...
看下这个链接:http://www.cnblogs.com/smailxiaobai/archive/2011/11/17/2252958.html
把GETDATE() 定义成一个变量试试。
为什么用function,用存储过程,然后调用存储过程不行吗?
存储过程OK了,但是不明白为什么function不行的呢? 同事告诉我function写insert是不行的 不知道为啥