CodeSmith 5.0工具实例篇系列4——根据表生成修改的存储过程,针对MS Sqlserver
运行该模板时,只需要选择单个表即可。
申明:该系列案例已通过CodeSmith Professional 5.0.1 Revision 4983版本的测试,以及生成的存储过程是针对MS Sqlserver。
操作说明 :运行CodeSmith Studio工具 ,创建Blank Template,并将文件名命名为:Update Proc.cst。
输入以下代码:
<%@ 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相关推荐
- SQLDbx使用教程:SQLDbx工具如何连接数据库(MS SQLServer)
SqlDbx 是简单易用的数据库连接工具,SQL编辑,SQL查询工具.语句规则突出,智能化,自动完成,等等特色功能多多.支持Oracle,Sybase ASE, IBM,DB2/UDB, Micros ...
- spring-boot-2.0.3不一样系列之源码篇 - springboot源码一,绝对有值得你看的地方
前言 上篇:spring-boot-2.0.3不一样系列之shiro - 搭建篇,实现了spring-boot与shiro的整合,效果大家也看到了,工程确实集成了shiro的认证与授权功能.如果大家能 ...
- Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编辑器
好吧,我真心全然搞不懂.我如今仅仅只是是写了3个类而已.怎么就已经到第八篇了?我感觉我说话已经够简单明了毫不唠叨了,真是奇怪.(小若:我噗.噗噗.) 好吧,既然如今主角已经能出现而且进行操作了.那,也 ...
- Asp.Net MVC2.0 Url 路由入门---实例篇
本篇主要讲述Routing组件的作用,以及举几个实例来学习Asp.Net MVC2.0 Url路由技术. 接着上一篇开始讲,我们在Global.asax中注册一条路由后,我们的请求是怎么转到相应的Vi ...
- Cocos2d-x3.0游戏实例《不要救我》第十篇(结束)——使用Json配置数据类型的怪物...
如今我们有2种类型的怪物,并且创建的时候是写死在代码里的,这是要作死的节奏~ 所以.必须可配置.不然会累死人的. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http://www ...
- Cocos2d-x3.0游戏实例《别救我》目录导航(共10篇,已完结)
这个5.1假期还真不错,有个小惊喜,那就是,我某个游戏今天的下载量爆表了,突破历史最高点~! 于是,我决定写一个新的游戏实例教程,以示庆祝~ 啊才怪啊~!这教程5.1之前就在写了,我还因此暂停了差不多 ...
- Cocos2d-x3.0游戏实例之《别救我》第十篇(完结)——用Json配置各类型怪物数据
现在我们有2种类型的怪物,而且创建的时候是写死在代码里的,这是要作死的节奏~ 所以,必须可配置,不然会累死人的. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址: http://www ...
- Jmeter 压力测试 - Http2.0工具下载慢解决思路-【问题篇】
Jmeter快速使用 特此郑重声明!该文章是原创作品,小编编写实属不易 ,帮忙点赞关注一下~转载小伙伴请注明出处!谢谢 概述 Apache JMeter Apache组织开发的压力测试工具.目前通过H ...
- 基于 qiankun 的微前端最佳实践(万字长文) - 从 0 到 1 篇
写在开头 微前端系列文章: 基于 qiankun 的微前端最佳实践(万字长文) - 从 0 到 1 篇 基于 qiankun 的微前端最佳实践(图文并茂) - 应用间通信篇 万字长文+图文并茂+全面解 ...
最新文章
- python给图片添加字符
- 【Python】KNN简单的判别预测
- 修改Oracle数据库的连接数
- JSTL 标签库详细介绍资料 .
- SAP Spartacus Session affinity
- Fences桌面图标分类
- Conversion of Continuous-Valued Deep Networks to Efficient Event-Driven Networks for Image Classific
- 程序媛报告:调查了 12,000 名女性开发者发现,女性比男性更懂 Java!
- linux下的powerline安装教程
- DDD~领域事件应用篇(订单处理变得更清晰)
- 北卡罗来纳大学遗传算法工具箱
- Mycat快速入门(六): Mycat管理命令和监控
- 码农的奋斗之路 富爸爸穷爸爸系列--提高你的财商 读后感
- 【雅思大作文考官范文】——第八篇:recycling essay(垃圾回收)
- 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
- 走进科学之内存插槽插满不识别
- 【Ubuntu】Ubuntu更换主题
- 倍福--授权等级的区别
- 如何验证Java 布尔类型的true = 1 ,false = 0
- 亚马逊云服务器使用密码登录