團隊合作設計一套系統數據模型,創建了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才能將修改后的模板文件保存。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
