我在MS SQL Server中有一些函数可以返回一些计算值。但我必须为最终用户“解释”该值的计算方法。换句话说,我必须将一些计算日志保存到数据库中。你能告诉我最好的方法吗? 在T-SQL中
我不能在函数中使用RCUD(创建,更新,删除)操作。
感谢。
答案 0 :(得分:1)
您可以将该函数重写为返回两列的表值函数:结果和解释。例如,而不是此功能:
CREATE FUNCTION dbo.Factorial(@N TINYINT) RETURNS BIGINT
AS BEGIN
DECLARE @R BIGINT, @I TINYINT
SET @R=1
SET @I=2
WHILE @I<=@N BEGIN
SET @R=@R*@I
SET @I=@I+1
END
RETURN @R
END
GO
SELECT dbo.Factorial(5)
你可以写下这样的另一个函数:
CREATE FUNCTION dbo.FactorialExplained(@N TINYINT)
RETURNS @Results TABLE (Result bigint, Explanation nvarchar(1000))
AS BEGIN
DECLARE @R BIGINT, @I TINYINT, @E nvarchar(1000)
SET @R=1
SET @I=2
SET @E='1'
WHILE @I<=@N BEGIN
SET @R=@R*@I
SET @E=@E+'*'+CONVERT(varchar(3),@I)
SET @I=@I+1
END
INSERT INTO @Results VALUES (@R, @E)
RETURN
END
GO
SELECT * FROM dbo.FactorialExplained(5)
勒兹