cs_Group_CreateUpdateDelete
ALTER PROCEDURE [dbo].cs_Group_CreateUpdateDelete
(
@GroupID int out,
@Name nvarchar(256),
@Description nvarchar(1000) = '',
@ApplicationType smallint = 0,
@Action int,
@SettingsID int
)
AS
SET Transaction Isolation Level Read UNCOMMITTED
/**//*设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁,
也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。*/
-- CREATE
-- 创建
IF @Action = 0
BEGIN
DECLARE @SortOrder int
/**//*声明排序类型*/
SELECT @SortOrder = coalesce(MAX(SortOrder) + 1, 1) FROM cs_Groups where SettingsID = @SettingsID
/**//*COALESCE 返回其参数中第一个非空表达式。*/
-- Create a new forum group
-- 创建一个 新的论坛的组,即区
INSERT INTO
cs_Groups
(
Name,
Description,
SortOrder,
ApplicationType,
SettingsID
)
VALUES
(
@Name,
@Description,
@SortOrder,
@ApplicationType,
@SettingsID
)
SET @GroupID = @@IDENTITY
/**//*插入数据,主键自动增长*/
END
-- UPDATE
-- 更新
ELSE IF @Action = 1 --如果是更新活动
BEGIN
IF EXISTS(SELECT GroupID FROM cs_Groups WHERE GroupID = @GroupID)
/**//*如果存在此大区,则更新此区数据 */
BEGIN
UPDATE
cs_Groups
SET
Name = @Name,
Description = @Description
WHERE
GroupID = @GroupID and SettingsID = @SettingsID
END
END
-- DELETE
-- 删除
ELSE IF @Action = 2 -- 如果活动类型为2 ,则删除
BEGIN
DELETE cs_Groups WHERE GroupID = @GroupID and SettingsID = @SettingsID
/**//*删除此组*/
END
/**//*这样的最清楚了,看输入的活动类型,如果是插入就先查找原来的排序类型,然后按序插入.
如果是更新,则先判断是否存在,存在才能对其进行更新.然后是删除,直接删除就是.这时候来个
判断也不错.*/
ALTER PROCEDURE [dbo].cs_Group_CreateUpdateDelete
(
@GroupID int out,
@Name nvarchar(256),
@Description nvarchar(1000) = '',
@ApplicationType smallint = 0,
@Action int,
@SettingsID int
)
AS
SET Transaction Isolation Level Read UNCOMMITTED
/**//*设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁,
也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。*/
-- CREATE
-- 创建
IF @Action = 0
BEGIN
DECLARE @SortOrder int
/**//*声明排序类型*/
SELECT @SortOrder = coalesce(MAX(SortOrder) + 1, 1) FROM cs_Groups where SettingsID = @SettingsID
/**//*COALESCE 返回其参数中第一个非空表达式。*/
-- Create a new forum group
-- 创建一个 新的论坛的组,即区
INSERT INTO
cs_Groups
(
Name,
Description,
SortOrder,
ApplicationType,
SettingsID
)
VALUES
(
@Name,
@Description,
@SortOrder,
@ApplicationType,
@SettingsID
)
SET @GroupID = @@IDENTITY
/**//*插入数据,主键自动增长*/
END
-- UPDATE
-- 更新
ELSE IF @Action = 1 --如果是更新活动
BEGIN
IF EXISTS(SELECT GroupID FROM cs_Groups WHERE GroupID = @GroupID)
/**//*如果存在此大区,则更新此区数据 */
BEGIN
UPDATE
cs_Groups
SET
Name = @Name,
Description = @Description
WHERE
GroupID = @GroupID and SettingsID = @SettingsID
END
END
-- DELETE
-- 删除
ELSE IF @Action = 2 -- 如果活动类型为2 ,则删除
BEGIN
DELETE cs_Groups WHERE GroupID = @GroupID and SettingsID = @SettingsID
/**//*删除此组*/
END
/**//*这样的最清楚了,看输入的活动类型,如果是插入就先查找原来的排序类型,然后按序插入.
如果是更新,则先判断是否存在,存在才能对其进行更新.然后是删除,直接删除就是.这时候来个
判断也不错.*/
cs_GetUserIDByAppToken
ALTER PROCEDURE [dbo].cs_GetUserIDByAppToken
(
@AppUserToken varchar(128),
@SettingsID int
)
AS
SET Transaction Isolation Level Read UNCOMMITTED
/**//*设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁,
也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。*/
SELECT
U.cs_UserID
FROM
cs_vw_Users_FullUser U (nolock)
WHERE
U.cs_AppUserToken = @AppUserToken and SettingsID = @SettingsID
/**//*从用户视图中查找用户ID,不知道cs_AppUserToken的意思*/
ALTER PROCEDURE [dbo].cs_GetUserIDByAppToken
(
@AppUserToken varchar(128),
@SettingsID int
)
AS
SET Transaction Isolation Level Read UNCOMMITTED
/**//*设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁,
也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。*/
SELECT
U.cs_UserID
FROM
cs_vw_Users_FullUser U (nolock)
WHERE
U.cs_AppUserToken = @AppUserToken and SettingsID = @SettingsID
/**//*从用户视图中查找用户ID,不知道cs_AppUserToken的意思*/