MSSQL Server函数,uniqueidentifier作为返回值

时间:2014-11-06 15:59:36

标签: sql-server function return-value uniqueidentifier

我为每个用户准备了一张桌子,其中存储了他的历史记录。现在我需要一个函数,它获取该用户的最后一个动作。这是我的尝试。

CREATE FUNCTION [dbo].[GetLastUserActionID]
(
    @userID uniqueidentifier
)
RETURNS uniqueidentifier
AS BEGIN
    DECLARE @actionID uniqueidentifier
    DECLARE @tableName nvarchar(max)
    Set @tableName = '[tbl_History' + convert(nvarchar(36), @userID) + ']'
    SELECT @actionID = Top(1) his_ID from @tableName ORDER BY his_Date desc
    RETURN @actionID
END

服务器根本不喜欢这行:

SELECT @actionID = Top(1) his_ID from @tableName ORDER BY his_Date desc

标记“Top(1)”。也许有人知道另一个建议来实现我的目标吗?

1 个答案:

答案 0 :(得分:1)

前几天我遇到了这个。尝试编写像

这样的行
SELECT Top 1 @actionID =  his_ID from @tableName ORDER BY his_Date desc