我做对了吗...?
我有一个可以退款的功能...
CREATE FUNCTION functionName( @a_principal money, @a_from_date
datetime, @a_to_date datetime, @a_rate float ) RETURNS money AS BEGIN
DECLARE @v_dint money set @v_dint = computation_here
set @v_dint = round(@v_dint, 2)
RETURN @v_dint
END
GO
Grant execute on functionName to another_user
Go
我只是想知道是否可以将其转换为iTVF?
我尝试这样做,但出现错误:
CREATE FUNCTION functionName ( @a_principal money, @a_from_date
datetime, @a_to_date datetime, @a_rate float )
RETURNS TABLE AS
RETURN SELECT returnMoney = computation_here
GO
Grant execute on functionName to another_user Go
错误:
消息4606,级别16,状态1,第2行授予或撤销的特权EXECUTE与对象不兼容。
该函数的用法如下:
update table_name set interest = functionName(col1,col2...) where...
提前致谢!
当您现在返回表时,GRANT语句需要是GRANT SELECT,而不是GRANT EXECUTE。
—
迈克