團(tuán)隊(duì)合作設(shè)計(jì)一套系統(tǒng)數(shù)據(jù)模型,創(chuàng)建了PDM后,Table、View、Store Procedure等都創(chuàng)建好了,且創(chuàng)建了多個(gè)Schema方便管理這些數(shù)據(jù)庫對(duì)象,但Table、view、Column等對(duì)象有Comment時(shí)(用來在團(tuán)隊(duì)不同成員間共享描述信息)
生成數(shù)據(jù)庫時(shí)會(huì)得到一個(gè)提示"不支持?jǐn)U展屬性,或?qū)ο蟛淮嬖?,分析發(fā)現(xiàn)異常在類似以下語句:
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
分析原因,發(fā)現(xiàn)是由于采用了Schema(上述代碼中的Environment),所以sp_addextendedproperty存儲(chǔ)過程的第三個(gè)參數(shù)就應(yīng)該是SCHEMA而不是user。查詢相關(guān)資料發(fā)現(xiàn)以上SQL語句是基于Powerdesigner自帶的對(duì)應(yīng)的.xdb文件生成的,如下圖是Column注釋信息的SQL代碼模板,對(duì)應(yīng)的xdb模板文件存放在powerdesigner安裝路徑的Sybase\PowerDesigner 16\Resource Files\DBMS\sqlsv2012.xdb
如上圖,每個(gè)Column的Comment信息均通過以上代碼模板生成,所以只需要修改代碼模板(將sp_addextendedproperty的第三個(gè)參數(shù)值由user修改為schema即可)即可讓所有對(duì)象的Comment生成語句得到修正。
注:在win7以上系統(tǒng)中需要使用管理員權(quán)限運(yùn)行powerdesigner才能將修改后的模板文件保存。
?
PowerDesigner 16.5對(duì)SQL Server 2012 生成數(shù)據(jù)庫時(shí)"不支持?jǐn)U展屬性"問題
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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