PowerDesigner 16.5對SQL Server 2012 生成數據庫時"不支持擴展屬性"問題


團隊合作設計一套系統數據模型,創建了PDM后,Table、View、Store Procedure等都創建好了,且創建了多個Schema方便管理這些數據庫對象,但Table、view、Column等對象有Comment時(用來在團隊不同成員間共享描述信息)

生成數據庫時會得到一個提示"不支持擴展屬性,或對象不存在",分析發現異常在類似以下語句:

if exists(select 1 from sys.extended_properties p where
      p.major_id = object_id('Environment.Resource')
  and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'ResourceCode')
)
begin
   execute sp_dropextendedproperty 'MS_Description',
   'user', 'Environment', 'table', 'Resource', 'column', 'ResourceCode'

end
execute sp_addextendedproperty 'MS_Description',
   '資源編碼',
   'user', 'Environment', 'table', 'Resource', 'column', 'ResourceCode'
go

分析原因,發現是由於采用了Schema(上述代碼中的Environment),所以sp_addextendedproperty存儲過程的第三個參數就應該是SCHEMA而不是user。查詢相關資料發現以上SQL語句是基於Powerdesigner自帶的對應的.xdb文件生成的,如下圖是Column注釋信息的SQL代碼模板,對應的xdb模板文件存放在powerdesigner安裝路徑的Sybase\PowerDesigner 16\Resource Files\DBMS\sqlsv2012.xdb

如上圖,每個Column的Comment信息均通過以上代碼模板生成,所以只需要修改代碼模板(將sp_addextendedproperty的第三個參數值由user修改為schema即可)即可讓所有對象的Comment生成語句得到修正。

注:在win7以上系統中需要使用管理員權限運行powerdesigner才能將修改后的模板文件保存。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM