当前位置:首页 > 数据库 > Sqlserver

Sql server2008中merge用法

             1
            ///
            <summary>
             2
            ///
             修改:添加条件: AND roleModule.FuncCode = tvpRoleModule.FuncCode

             3
            ///
            </summary>
             4
            private
            static
            readonly
            string SQL_PernissionReRoleModuleCreate = @"MERGE [dbo].[PernissionReRoleModule] AS roleModule
 5USING @tvp AS tvpRoleModule
 6ON (roleModule.RoleId = tvpRoleModule.RoleId AND roleModule.ModuleId = tvpRoleModule.ModuleId AND roleModule.FuncCode = tvpRoleModule.FuncCode)
 7WHEN MATCHED
 8 THEN UPDATE SET roleModule.FuncCode = tvpRoleModule.FuncCode,roleModule.OptScope = tvpRoleModule.OptScope
 9WHEN NOT MATCHED THEN
10  INSERT(RoleId,ModuleId,FuncCode,OptScope)
11        VALUES(tvpRoleModule.RoleId,tvpRoleModule.ModuleId,tvpRoleModule.FuncCode,tvpRoleModule.OptScope)
12WHEN NOT MATCHED BY SOURCE AND roleModule.RoleId  = @roleId
13     THEN DELETE;";
141516///<summary>17/// 创建新的角色功能信息
18///</summary>19///<param name="organization">角色功能实体类</param>20///<returns></returns>21publicint Create(IList<PernissionReRoleModule> module, int roleId)
22        {
2324             DataTable tblData = new DataTable();
25             tblData.Columns.Add("RoleId", typeof(Int32));
26             tblData.Columns.Add("ModuleId", typeof(Int32));
27             tblData.Columns.Add("FunCode", typeof(int));
28             tblData.Columns.Add("OptScope", typeof(int));
29foreach (var item in module)
30            {
31                 tblData.Rows.Add(newobject[] { roleId, item.ModuleId, item.FuncCode, item.OptScope });
32            }
3334var cmd = this.sqlHelper.PrepareTextSqlCommand(SQL_PernissionReRoleModuleCreate);
35             cmd.AddParam("@roleId", roleId);
36var param = cmd.Parameters.AddWithValue("@tvp", tblData);
373839             param.SqlDbType = SqlDbType.Structured;
40             param.TypeName = "dbo.ReRoleModule";
41return cmd.ExecuteWrapNonQuery();
42        }
43#endregion

 

原文:http://www.cnblogs.com/zpc870921/p/4982352.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐