自动设置Identity属性的代码(PowerDesigner脚本)

脚本

'*****************************************************************************
'文件:SetIdentity.vbs
'版本:1.0
'版权:floodzhu (floodzhu@hotmail.com),2004.12.31
'功能:遍历物理模型中的所有表,把是主键但不是外键的字段设置为Identity,适用于
'      物理模型为MS Sql Server的类型。
'用法:打开物理模型,运行本脚本(Ctrl+Shift+X)
'备注:我有两个习惯,一个是把所有表的主键都定义为自增长的int类型,另一个是定义
'      一个Domain叫ID,在设计概念模型时把所有的PrimaryKey字段的Domain设置为ID
'      类型。
'
'      如果我进行了上面的设置,则在转化为物理模型时需要手工设置Identity,
'      最笨的方法是一个表一个表进行设置,最简单的方法是在物理模型中直接对Domain
'      进行设置。对Domain进行设置有一个小缺点,就是如果该字段不是主键也不是生
'      成的外键,而是一个一般字段,例如表示树状结构的PID,则它也会被设置为
'      Identity,不过由于这种字段比较少,而且在生成数据库时会发生错误可以提醒
'      你进行纠正,所以可以轻松过关而不至于隐藏错误,所以是一种好方法。
'
'      用下面的代码可以给你第三种选择,而不会发生任何错误。
'*****************************************************************************
dim model 'current model
set model = ActiveModel

If (model Is Nothing) Then
   MsgBox "There is no current Model"
ElseIf Not model.IsKindOf(PdPDM.cls_Model) Then
   MsgBox "The current model is not an Physical Data model."
Else
   ProcessTables model
End If

'*****************************************************************************
'函数:ProcessTables
'功能:递归遍历所有的表
'*****************************************************************************
sub ProcessTables(folder)
   '处理模型中的表
   dim table
   for each table in folder.tables
      if not table.IsShortCut then
         ProcessTable table
      end if
   next
  
   '对子目录进行递归
   dim subFolder
   for each subFolder in folder.Packages
      ProcessTables subFolder
   next
end sub

'*****************************************************************************
'函数:ProcessTable
'功能:遍历指定table的所有字段,如果该字段是主键但不是外键,则设置为Identity
'*****************************************************************************
sub ProcessTable(table)
   dim col
   for each col in table.Columns
      '对于是主键且不是外键的字段设置为Identity(自增长类型)
      if col.Primary and not col.ForeignKey then
         col.Identity = true
      end if
   next
end sub

时间: 2024-10-31 08:06:51

自动设置Identity属性的代码(PowerDesigner脚本)的相关文章

通过javascript设置css属性的代码_javascript技巧

1.透明度: 如果没有为一个文本指定一个背景颜色或者一个背景图像,那么这个元素的背景通常是透明的. 这一点很重要,如果一个绝对定位的且带有文本的元素放在一个有文本的元素之上,那么将会十分的混乱,那么我们就可以通过设置背景图片或者背景颜色来进行遮盖,如果必须的话我们可以将其显示的设置为"transparent"(透明的) 通用的设置透明元素通用的css如下: 复制代码 代码如下: opacity:.75;//ff new -moz-opacity:.75;// transparency

10. IDENTITY属性使用小结

原文:10. IDENTITY属性使用小结 从SQL Server 2012开始有了Sequence,简单用列如下: CREATE SEQUENCE TestSeq START WITH 1 INCREMENT BY 1 ; SELECT NEXT VALUE FOR TestSeq AS NextValue; 在这之前,表中生成序列号大多都是借助IDENTITY列属性,当然也有一些时候,是在自定义表中,自己维护序列号. 一. 创建IDENTITY列 if OBJECT_ID('test','U

如何设置WEB.CONFIG能让它自动改写某个页面的代码?

问题描述 如何设置WEB.CONFIG能让它自动改写某个页面的代码? 解决方案 解决方案二:为什么要放在web.config里,直接写页面代码也可以自动生成不同的页面啊解决方案三:因为要修改的人,是不懂代码的,他们只要求他们修改后,代码可以自动生成或者修改解决方案四:webconfig里不支持写代码的吧,纯配置信息解决方案五:webconfig里不支持写代码的吧,纯配置信息我大概理解楼主的意思了/比如说你发布网站后,把连接语句封装在里面.改IP地址吧!主要一个网站写好了,动态的修改WebConf

struts2 cssclass:Struts2 checkboxlist标签 设置cssClass属性生成的html代码中check没有class属性问题

使用struts2 checkboxlist标签设置cssClass属性后,发现生成的html代码中 input 标签并没有class属性.打开checkboxlist.ftl看,内容如下:<input type="checkbox" name="${parameters.name?html}" value="${itemKeyStr?html}" id="${parameters.name?html}-${itemCount}&

datareport-vb6 自带报表 代码设置datasource属性时死机,啥问题呢,谢谢。挺急的

问题描述 vb6 自带报表 代码设置datasource属性时死机,啥问题呢,谢谢.挺急的 代码开始: E_打印.Commands("实验室检查报告").CommandType = adCmdText '--------"实验室检查报告"是数据环境下的一个command----------- E_打印.Commands("实验室检查报告").CommandText = StrSql Set R_检查报告.DataSource = E_打印 '--

代码-body上设置contenteditable属性可编辑HTML标签的内容,点击插入表情会失去焦点?

问题描述 body上设置contenteditable属性可编辑HTML标签的内容,点击插入表情会失去焦点? 点击插入表情时会失去焦点,插入表情总是会排到第一位. 这是我的部分代码 解决方案 http://www.2cto.com/kf/201303/194842.html

windows上自动设置java环境变量的脚本

原文:windows上自动设置java环境变量的脚本 近期打算学习安卓开发,于是乎要准备java开发环境,安装好jdk后,就要设置java环境变量,java环境变量要设置JAVA_HOME,Path,CLASSPATH三个值,每次配置查百度复制粘贴都很麻烦,所以想着偷懒下,用脚本直接执行就很快了,搜了下bat的命令,写了个配置java环境变量的脚本. 这里默认设置了java jdk的安装路径为C:\Program Files\Java\jdk1.7.0_71,如果你的jdk安装路径不在此,可在执

Android AutoCompleteTextView自动提示文本框实例代码

自动提示文本框(AutoCompleteTextView)可以加强用户体验,缩短用户的输入时间(百度的搜索框就是这个效果). 先给大家展示下效果图,如果大家感觉还不错,请参考实现代码: 最后一张获取文本框里面的值(其实就跟TextView.EditText一样): 首先,在xml中定义AutoCompleteTextView控件: activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/r

服务器端动态加载DataGrid控件并设置其属性

datagrid|datagrid控件|动态|服务器|加载|datagrid|datagrid控件|服务器|加载 DataGrid在Asp.net编程中占有非常重要的地位,对于浏览器中大批量数据的呈现,DataGrid几乎不可缺少.常用的设置DataGrid属性的方法都是在前台由Asp语句实现,这样显然不适合DataGrid的动态加载,通过后台C#代码实现前台的功能显得非常重要,下面就通过一个实例来说明其设置方法.同其它动态加载服务器控件的方法一样,要在客户端浏览器上呈现DataGrid,必须要