2016-05-06 2 views
0

PowerDesigner 16.5にデータベースの物理データモデルがあり、SQL Server 2012 CREATEデータベーススクリプトを生成したいと思います。 問題は、このようなファイルを生成すると、テーブルの列名がモデルの「CODE」列で定義されているものと同じで、テーブルの「NAME」列と同じにすることです。PowerDesigner 16.5 - SQL Serverの列名CREATEデータベーススクリプト

PowerDesignerに、前述のファイルの生成処理中に「コード」ではなく「名前」から列名を取得する方法を知っていますか?

答えて

0

DBMSプロパティのSQL生成パターンを変更できます。データベースメニューには、「現在のDBMSの編集...」メニュー項目があり、このダイアログボックスですべての生成パターンを表示します。

列を含む世代(列自体、表、参照、索引など)を検索し、「列名」(または「列名」)を「列名」に置き換えることができます。

ただし、このような場所をすべて見つけるにはかなりの反復が必要になることに注意してください。また、データベースのプロパティファイル* * .xdb-firstをバックアップすることを強くお勧めします。何かを壊すのはむしろ簡単で、DB生成全体が壊れるからです。

0

あなたはAll validとしてMixed CASeとしてCharacter case、およびValid charactersを設定し、Tools > Model Options > Naming Convention > Table > Code下の命名規則を変更することができます。そうすれば、将来のすべてのオブジェクトはNameと一致するCodeになります。

しかし、私はそれが使用されているどこにでも引用符を付けることを避けるために、わずかに制約されたSQL名を持つ方が簡単です。 SQLの名前を更新する「Dead-man pusher」と「責任ある従業員」と「責任ある従業員」と「責任ある従業員」の間のジャンプを避けます。私は "RespEmpl"(すべてのSQL名が4文字または8文字でなければならない)とし、Nameで疲れを覚えるまで手をつないでください。

option explicit 
    ' avoid endless loop in case of some mistake, adjust to model objects number 
    ' set to -1 to disable 
    const maxcount = 1000 
    dim count : count = 0 
    dim f : set f = ActiveModel 
    descent f 
sub descent(f) 
    if maxcount > 0 and count > maxcount then exit sub 
    output "... entering " & f.Name 
    dim c 
    for each c in f.Children 
     count = count + 1 
     if maxcount > 0 and count > maxcount then exit for 
     if c.ClassKind = cls_Table then 
     rename c 
     elseif isKindOf(c.ClassKind, cls_BaseFolder) then 
     descent c 
     end if 
    next 
end sub 
sub rename(o) 
    dim n : n = o.Code 
    o.setNameToCode 
    if o.Code <> n then output " " & o.ClassName & " " & o.Name & ", " & n & " => " & o.Code 
end sub 

OK ...私はModel Optionsを変更した後、既存のオブジェクトに再び名前からコード変換を適用する方法を見つけることができないので、ここでそれを行うスクリプトです

関連する問題