Excel文件(数据字典)生产中文SQL反向创建Erwin数据模型

Excel文件(数据字典)生产中文SQL反向创建Erwin数据模型

一、Excel文件(数据字典)创建Erwin模型中文SQL
格式:数据字典正文第一列不为空
这里写图片描述
图 1-1 Excel文件(数据字典)

–生产中文SQL的VB语句

Sub read()
Dim objApp As Object
Dim objWbk As Object
Dim objSht As Object
Dim i, strTemp, strWorkBook
Dim strTableName, strPK
'工作簿文件名
strWorkBook = "E:\IN2.xlsx" '填写数据字典所在的位置
Set objApp = CreateObject("Excel.Application")
Set objWbk = objApp.Workbooks.Open(strWorkBook)
'Set objSht = objWbk.Sheets(1)
'输出的文本文件名
Open "E:\OUT.txt" For Append As #1
'循环读取所有sheet
numSheet = objWbk.Sheets.Count
For i = 1 To numSheet
Set objSht = objWbk.Sheets(i)

'打印表名称
strTemp = "Create table " & Chr(34) & objSht.Cells(2, 3).Value & Chr(34) & " ("
Print #1, strTemp
'获取表英文名称
strTableName = objSht.Cells(3, 3).Value
'统计行数
rommax = objSht.UsedRange.Rows.Count
retMsg = ""
strPK = ""
For x = 6 To rommax - 2
retMsg = retMsg & " """ & objSht.Cells(x, 1).Value & """ " & objSht.Cells(x, 3).Value & "," & vbCrLf
'判断主键值
If UCase(objSht.Cells(x, 4).Value) = "PK" Then
strPK = strPK & objSht.Cells(x, 2).Value & ","
End If
Next
retMsg = retMsg & " """ & objSht.Cells(x, 1).Value & """ " & objSht.Cells(x, 3).Value & vbCrLf & ");"
Print #1, retMsg
'3、输出创建主键语句
If strPK <> "" Then
strTemp = "Alter Table " & strTableName & " add constraint PK_" & strTableName & " Primary key(" & Left(strPK, Len(strPK) - 1) & ");" & vbCrLf
Print #1, strTemp
End If
Next
'关闭文件
Close #1
objWbk.Close
Set objSht = Nothing
Set objWbk = Nothing
Set objApp = Nothing
MsgBox "数据导出完毕!", vbInformation
End Sub

二、利用ERwin的反向工程创建ERwin数据模型
这里写图片描述
图 1-2 Tools-Rverse Engineer
这里写图片描述
图 1-3 Logical/Physical
这里写图片描述
图 1-4 Script File-Browse
这里写图片描述
图 1-5 ERwin数据模型
这里写图片描述
图 1-6 添加主键
这里写图片描述
图 1-7 表与字段中英文对照表
这里写图片描述
图 1-8 Tools-Name-Edit Naming Standards
这里写图片描述
图 1-9 Import 表与字段中英文对照表并生产nsm格式文件进行导出
这里写图片描述
图 1-10 导入nsm格式中英文对照表
这里写图片描述
图 1-11 Name Mapping
三、生产数据模型表SQL
这里写图片描述
图 1-12 Database-Pre & Post Scripts
这里写图片描述
图 1-13 生产表的注释SQL
这里写图片描述
图 1-14 导出表的注释SQL
这里写图片描述
图 1-15 生产和导出字段的注释SQL

猜你喜欢

转载自blog.csdn.net/lin434406218/article/details/80950349