运行该模板时,只需要选择单个表即可。
申明:该系列案例已通过CodeSmith Professional 5.0.1 Revision 4983版本的测试,以及生成的存储过程是针对MS Sqlserver。

操作说明 :运行CodeSmith Studio工具 ,创建Blank Template,并将文件名命名为:Update Proc.cst。
输入以下代码:

Code
<%@ CodeTemplate Language="C#" TargetLanguage="T-SQL" Src="" Inherits="" Debug="False" LinePragmas="True" Description="根据表生成修改的存储过程"  ResponseEncoding="UTF-8"%>
<%@ Property Name="TableName" Type="SchemaExplorer.TableSchema" Default="" Optional="False" Category="" Description="请选择需要生成存储过程的表" OnChanged="" Editor="" EditorBase="" Serializer="" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>

------------------------------------
--说明:<%=TableName%>表的修改存储过程 
--时间:<%= DateTime.Now %>
--技术支持:时间太快了
--邮箱地址:amwggyy504@163.com
--文章来源:http://amwggyy504.cnblogs.com
------------------------------------
<%
string StrWhere="";//修改条件 
string SetValues="";//修改的值 。
string Param="";//传入的参数。
foreach(ColumnSchema Column in TableName.Columns)
{           
        SetValues+="["+Column.Name+"]"+"=@"+Column.Name;
    Param+="@"+Column.Name+" " + Column.NativeType;
    switch(Column.DataType)
    {
        case DbType.Decimal:
        {
            Param+="("+Column.Precision+","+Column.Scale+")";
            break;
        }
        case DbType.Int32:
        {                                
            break;
        }
                case DbType.DateTime:
                {
                        break;
                        }
        default:
        {
            if(Column.Size>0)
                    Param+="("+Column.Size+")";                                        
            break;
        }                        
    }        
    if(Column.Name!=TableName.Columns[TableName.Columns.Count-1].Name)
    {        
        SetValues+=",\n";
        Param+=",\n";
    }
}

for (int i=0;i<TableName.PrimaryKey.MemberColumns.Count; i++)
{
        if (i>0) { 
                StrWhere+=" And " ;
                }
                StrWhere+="["+TableName.PrimaryKey.MemberColumns[i].Name +"]=@"+ TableName.PrimaryKey.MemberColumns[i].Name;
}
%>
Create Proc Proc_<%=TableName.Name%>_Update
        <%=Param%>
As
        Update  <%=TableName.Name%>
               Set <%=SetValues %>
                Where   <%=StrWhere %>

转载于:https://www.cnblogs.com/juan/archive/2009/03/29/1424367.html

CodeSmith 5.0工具实例篇系列4——根据表生成修改的存储过程,针对MS Sqlserver相关推荐

  1. SQLDbx使用教程:SQLDbx工具如何连接数据库(MS SQLServer)

    SqlDbx 是简单易用的数据库连接工具,SQL编辑,SQL查询工具.语句规则突出,智能化,自动完成,等等特色功能多多.支持Oracle,Sybase ASE, IBM,DB2/UDB, Micros ...

  2. spring-boot-2.0.3不一样系列之源码篇 - springboot源码一,绝对有值得你看的地方

    前言 上篇:spring-boot-2.0.3不一样系列之shiro - 搭建篇,实现了spring-boot与shiro的整合,效果大家也看到了,工程确实集成了shiro的认证与授权功能.如果大家能 ...

  3. Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器

    好吧,我真心全然搞不懂.我如今仅仅只是是写了3个类而已.怎么就已经到第八篇了?我感觉我说话已经够简单明了毫不唠叨了,真是奇怪.(小若:我噗.噗噗.) 好吧,既然如今主角已经能出现而且进行操作了.那,也 ...

  4. Asp.Net MVC2.0 Url 路由入门---实例篇

    本篇主要讲述Routing组件的作用,以及举几个实例来学习Asp.Net MVC2.0 Url路由技术. 接着上一篇开始讲,我们在Global.asax中注册一条路由后,我们的请求是怎么转到相应的Vi ...

  5. Cocos2d-x3.0游戏实例《不要救我》第十篇(结束)——使用Json配置数据类型的怪物...

    如今我们有2种类型的怪物,并且创建的时候是写死在代码里的,这是要作死的节奏~ 所以.必须可配置.不然会累死人的. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http://www ...

  6. Cocos2d-x3.0游戏实例《别救我》目录导航(共10篇,已完结)

    这个5.1假期还真不错,有个小惊喜,那就是,我某个游戏今天的下载量爆表了,突破历史最高点~! 于是,我决定写一个新的游戏实例教程,以示庆祝~ 啊才怪啊~!这教程5.1之前就在写了,我还因此暂停了差不多 ...

  7. Cocos2d-x3.0游戏实例之《别救我》第十篇(完结)——用Json配置各类型怪物数据

    现在我们有2种类型的怪物,而且创建的时候是写死在代码里的,这是要作死的节奏~ 所以,必须可配置,不然会累死人的. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http://www ...

  8. Jmeter 压力测试 - Http2.0工具下载慢解决思路-【问题篇】

    Jmeter快速使用 特此郑重声明!该文章是原创作品,小编编写实属不易 ,帮忙点赞关注一下~转载小伙伴请注明出处!谢谢 概述 Apache JMeter Apache组织开发的压力测试工具.目前通过H ...

  9. 基于 qiankun 的微前端最佳实践(万字长文) - 从 0 到 1 篇

    写在开头 微前端系列文章: 基于 qiankun 的微前端最佳实践(万字长文) - 从 0 到 1 篇 基于 qiankun 的微前端最佳实践(图文并茂) - 应用间通信篇 万字长文+图文并茂+全面解 ...

最新文章

  1. python给图片添加字符
  2. 【Python】KNN简单的判别预测
  3. 修改Oracle数据库的连接数
  4. JSTL 标签库详细介绍资料 .
  5. SAP Spartacus Session affinity
  6. Fences桌面图标分类
  7. Conversion of Continuous-Valued Deep Networks to Efficient Event-Driven Networks for Image Classific
  8. 程序媛报告:调查了 12,000 名女性开发者发现,女性比男性更懂 Java!
  9. linux下的powerline安装教程
  10. DDD~领域事件应用篇(订单处理变得更清晰)
  11. 北卡罗来纳大学遗传算法工具箱
  12. Mycat快速入门(六): Mycat管理命令和监控
  13. 码农的奋斗之路 富爸爸穷爸爸系列--提高你的财商 读后感
  14. 【雅思大作文考官范文】——第八篇:recycling essay(垃圾回收)
  15. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
  16. 走进科学之内存插槽插满不识别
  17. 【Ubuntu】Ubuntu更换主题
  18. 倍福--授权等级的区别
  19. 如何验证Java 布尔类型的true = 1 ,false = 0
  20. 亚马逊云服务器使用密码登录

热门文章

  1. 机器学习09支持向量机
  2. 类的转换函数调用的优先级与是否用const修饰的关系
  3. golang的reflection(转)(一)
  4. 关于之前的函数式编程
  5. Lottie 站在巨人的肩膀上实现 Android 酷炫动画效果
  6. WIN10系统 截图或者某些程序时屏幕会自动放大怎么办
  7. Python自动化运维:Django之View视图和Template
  8. 1970“变种”bug连WiFi热点iOS设备会变砖?
  9. android抓包工具——使用fiddler4在安卓手机抓包
  10. Android安全-SO动态库注入