procedure.cst

来自「一个网上书店的源码」· CST 代码 · 共 57 行

CST
57
字号
<%@ CodeTemplate Language="C#" TargetLanguage="T-SQL"
       Description="Generates a update stored procedure." %>
  
 <%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema"
       Category="Context"
       Description="Table that the stored procedures should be based on." %>
  
 <%@ Assembly Name="SchemaExplorer" %>
  
 <%@ Import Namespace="SchemaExplorer" %>
       
 <script runat="template">
 public string GetSqlParameterStatement(ColumnSchema column)
 {
       string param = "@" + column.Name + " " + column.NativeType;
  
       switch (column.DataType)
       {
             case DbType.Decimal:
             {
                   param += "(" + column.Precision + ", " + column.Scale + ")";
                   break;
             }
             default:
             {
                   if (column.Size > 0)
                   {
                         param += "(" + column.Size + ")";
                   }
                   break;
             }
       }
  
       return param;
 }
 </script>
  
 -----------------------------------------------------------------
 -- Date Created: <%= DateTime.Now.ToLongDateString() %>
 -- Created By:   Generated by CodeSmith
 -----------------------------------------------------------------
  
 CREATE PROCEDURE dbo.Update<%= SourceTable.Name %>
       <% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
       <%= GetSqlParameterStatement(SourceTable.Columns[i]) %><% if (i < SourceTable.Columns.Count - 1) { %>,<% } %>
       <% } %>
 AS
  
 UPDATE [<%= SourceTable.Name %>] SET
       <% for (int i = 0; i < SourceTable.NonPrimaryKeyColumns.Count; i++) { %>
       [<%= SourceTable.NonPrimaryKeyColumns[i].Name %>] = @<%= SourceTable.NonPrimaryKeyColumns[i].Name %><% if (i < SourceTable.NonPrimaryKeyColumns.Count - 1) { %>,<% } %>
       <% } %>
 WHERE
       <% for (int i = 0; i < SourceTable.PrimaryKey.MemberColumns.Count; i++) { %>
       <% if (i > 0) { %>AND <% } %>
       [<%= SourceTable.PrimaryKey.MemberColumns[i].Name %>] = @<%= SourceTable.PrimaryKey.MemberColumns[i].Name %>
       <% } %>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?