日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/9 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。