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

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

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

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生成語句獲得修正。spa

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

相關文章
相關標籤/搜索