我为每个用户准备了一张桌子,其中存储了他的历史记录。现在我需要一个函数,它获取该用户的最后一个动作。这是我的尝试。
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)”。也许有人知道另一个建议来实现我的目标吗?
答案 0 :(得分:1)
前几天我遇到了这个。尝试编写像
这样的行SELECT Top 1 @actionID = his_ID from @tableName ORDER BY his_Date desc