欄位[Views]為累加的瀏覽率, ItemId & ItemType 為頁面物件
現在想要詳細記錄每一個使用者的瀏覽時間, 因為之前沒有記錄使用者, 為了讓舊的瀏覽記錄沿用, 所以必須製作假資料, 例如資料表中的第二筆資料的[Views]為4, 則 insert 4筆假資料
備註 :
1. 為了可以加入到entity framework, 所以加了 Id 當主鍵
2. UserId 用 -1 代表匿名使用者, 表示沒有登入狀態下瀏覽網頁
T-SQL :
declare @i int
declare @max int -- 要產生幾筆資料
declare @itemId nvarchar(50)
declare @itemType nvarchar(50)
declare @createdOn datetime
declare cur CURSOR LOCAL for
select ItemId, ItemType,[Views],ModifiedOn from PageViews
open cur
fetch next from cur into @itemId, @itemType, @max,@createdOn
while @@FETCH_STATUS = 0 begin
set @i = 0
while (@i<@max) begin
insert into UserPageView (UserId,ItemId,ItemType,CreatedOn)
values (-1,@itemId,@itemType,@createdOn)
set @i = @i+1 -- 累加
end
fetch next from cur into @itemId, @itemType, @max,@createdOn
end
close cur
deallocate cur
沒有留言:
張貼留言