cs_Favorite_GetByUserItem
1ALTER procedure dbo.cs_Favorite_GetByUserItem
2(
3 @SettingsID int,
4 @FavoriteType int,
5 @UserID int,
6 @ItemID int
7)
8AS
9 SET NOCOUNT ON
10
11/**//*当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。
12当 SET NOCOUNT 为 OFF 时,返回计数。即使当 SET NOCOUNT 为 ON 时,
13也更新 @@ROWCOUNT 函数。*/
14 SET Transaction Isolation Level Read UNCOMMITTED
15
16/**//*设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁,
17 也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
18 改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
19 语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。*/
20
21-----------------------------------------------------------------------------
22/**//*同样是判断类型先,然后在执行操作.此条多了个拥有者的条件,其他还是照就.*/
23-----------------------------------------------------------------------------
24
25 IF @FavoriteType = 1 -- Section
26
27 SELECT
28 F.FavoriteID,
29 F.OwnerID AS UserID,
30 F.SettingsID,
31 F.SectionID AS ItemID,
32 @FavoriteType AS FavoriteType,
33 F.ApplicationType
34 FROM
35 cs_FavoriteSections F
36 WHERE
37 F.OwnerID = @UserID AND
38 F.SectionID = @ItemID AND
39 F.SettingsID = @SettingsID
40
41 ELSE IF @FavoriteType = 2 -- User
42
43 SELECT
44 F.FavoriteID,
45 F.OwnerID AS UserID,
46 F.SettingsID,
47 F.UserID AS ItemID,
48 @FavoriteType AS FavoriteType,
49 F.ApplicationType
50 FROM
51 cs_FavoriteUsers F
52 WHERE
53 F.OwnerID = @UserID AND
54 F.UserID = @ItemID AND
55 F.SettingsID = @SettingsID
56
57 ELSE IF @FavoriteType = 4 -- Post
58
59 SELECT
60 F.FavoriteID,
61 F.OwnerID AS UserID,
62 F.SettingsID,
63 F.PostID AS ItemID,
64 @FavoriteType AS FavoriteType,
65 F.ApplicationType
66 FROM
67 cs_FavoritePosts F
68 WHERE
69 F.OwnerID = @UserID AND
70 F.PostID = @ItemID AND
71 F.SettingsID = @SettingsID
72
73
74GO
1ALTER procedure dbo.cs_Favorite_GetByUserItem
2(
3 @SettingsID int,
4 @FavoriteType int,
5 @UserID int,
6 @ItemID int
7)
8AS
9 SET NOCOUNT ON
10
11/**//*当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。
12当 SET NOCOUNT 为 OFF 时,返回计数。即使当 SET NOCOUNT 为 ON 时,
13也更新 @@ROWCOUNT 函数。*/
14 SET Transaction Isolation Level Read UNCOMMITTED
15
16/**//*设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁,
17 也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
18 改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
19 语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。*/
20
21-----------------------------------------------------------------------------
22/**//*同样是判断类型先,然后在执行操作.此条多了个拥有者的条件,其他还是照就.*/
23-----------------------------------------------------------------------------
24
25 IF @FavoriteType = 1 -- Section
26
27 SELECT
28 F.FavoriteID,
29 F.OwnerID AS UserID,
30 F.SettingsID,
31 F.SectionID AS ItemID,
32 @FavoriteType AS FavoriteType,
33 F.ApplicationType
34 FROM
35 cs_FavoriteSections F
36 WHERE
37 F.OwnerID = @UserID AND
38 F.SectionID = @ItemID AND
39 F.SettingsID = @SettingsID
40
41 ELSE IF @FavoriteType = 2 -- User
42
43 SELECT
44 F.FavoriteID,
45 F.OwnerID AS UserID,
46 F.SettingsID,
47 F.UserID AS ItemID,
48 @FavoriteType AS FavoriteType,
49 F.ApplicationType
50 FROM
51 cs_FavoriteUsers F
52 WHERE
53 F.OwnerID = @UserID AND
54 F.UserID = @ItemID AND
55 F.SettingsID = @SettingsID
56
57 ELSE IF @FavoriteType = 4 -- Post
58
59 SELECT
60 F.FavoriteID,
61 F.OwnerID AS UserID,
62 F.SettingsID,
63 F.PostID AS ItemID,
64 @FavoriteType AS FavoriteType,
65 F.ApplicationType
66 FROM
67 cs_FavoritePosts F
68 WHERE
69 F.OwnerID = @UserID AND
70 F.PostID = @ItemID AND
71 F.SettingsID = @SettingsID
72
73
74GO