CodeSmith 5.0工具实例篇系列4——根据表生成修改的存储过程,针对MS Sqlserver
生活随笔
收集整理的這篇文章主要介紹了
CodeSmith 5.0工具实例篇系列4——根据表生成修改的存储过程,针对MS Sqlserver
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
運行該模板時,只需要選擇單個表即可。
申明:該系列案例已通過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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IP地址ABC类
- 下一篇: win10桌面简洁化(自定义鼠标右键菜单