PowerDesigner 12 根据名称生成注释(续)
前言
在上篇文章结尾的时候有说要研究实现【名称+备注来生成数据库注释】,呵呵比较顺利的是写完那篇文章不久就把这个给鼓捣出来了,关于它里面那些怪怪的语法没有找到合适的资料,但是明白了一点,在里面直接写SQL语句还是可以的,所以得以顺利达到目的。关于PD配置及生成这里就不重复讲解了,下面进入正题。
正文
1. 修改当前DBMS(Script\Objects\Column\ColumnComment)位置的值如下:
DECLARE @des VARCHAR(255)
SET @des = CASE N'%COMMENT%'
WHEN N'%Name%' THEN N'%Name%'
ELSE N'%Name%'+'('+ N'%COMMENT%' + ')'
END
EXECUTE sp_addextendedproperty N'MS_Description', @des, N'user', N'%OWNER%', N'table', N'%TABLE%', N'column', N'%COLUMN%'
SET @des = CASE N'%COMMENT%'
WHEN N'%Name%' THEN N'%Name%'
ELSE N'%Name%'+'('+ N'%COMMENT%' + ')'
END
EXECUTE sp_addextendedproperty N'MS_Description', @des, N'user', N'%OWNER%', N'table', N'%TABLE%', N'column', N'%COLUMN%'
2.PD中添加测试用的字段 性别
3.生成SQL语句,生成之后的SQL语句为:
/*==============================================================*/
/* DBMS name: SQL SERVER 2000 [EXT] */
/* Created on: 2008-2-28 16:57:43 */
/*==============================================================*/
if exists (select 1
from sysobjects
where id = object_id('dbo.Employee')
and type = 'U')
drop table dbo.Employee
go
/*==============================================================*/
/* Table: Employee */
/*==============================================================*/
create table dbo.Employee (
ID int not null,
Username varchar(20) null,
Password varchar(20) null,
Sex int null,
constraint PK_EMPLOYEE primary key (ID)
)
go
EXECUTE sp_addextendedproperty N'MS_Description', N'Employee', N'user', N'dbo', N'table', N'Employee', NULL, NULL
go
DECLARE @des VARCHAR(255)
SET @des = CASE N'主键ID'
WHEN N'主键ID' THEN N'主键ID'
ELSE N'主键ID'+'('+ N'主键ID' + ')'
END
EXECUTE sp_addextendedproperty N'MS_Description',
@des
, N'user', N'dbo', N'table', N'Employee', N'column', N'ID'
go
DECLARE @des VARCHAR(255)
SET @des = CASE N'用户名'
WHEN N'用户名' THEN N'用户名'
ELSE N'用户名'+'('+ N'用户名' + ')'
END
EXECUTE sp_addextendedproperty N'MS_Description',
@des
, N'user', N'dbo', N'table', N'Employee', N'column', N'Username'
go
DECLARE @des VARCHAR(255)
SET @des = CASE N'密码'
WHEN N'密码' THEN N'密码'
ELSE N'密码'+'('+ N'密码' + ')'
END
EXECUTE sp_addextendedproperty N'MS_Description',
@des
, N'user', N'dbo', N'table', N'Employee', N'column', N'Password'
go
DECLARE @des VARCHAR(255)
SET @des = CASE N'1 男 0 女'
WHEN N'性别' THEN N'性别'
ELSE N'性别'+'('+ N'1 男 0 女' + ')'
END
EXECUTE sp_addextendedproperty N'MS_Description',
@des
, N'user', N'dbo', N'table', N'Employee', N'column', N'Sex'
go
最后效果图:/* DBMS name: SQL SERVER 2000 [EXT] */
/* Created on: 2008-2-28 16:57:43 */
/*==============================================================*/
if exists (select 1
from sysobjects
where id = object_id('dbo.Employee')
and type = 'U')
drop table dbo.Employee
go
/*==============================================================*/
/* Table: Employee */
/*==============================================================*/
create table dbo.Employee (
ID int not null,
Username varchar(20) null,
Password varchar(20) null,
Sex int null,
constraint PK_EMPLOYEE primary key (ID)
)
go
EXECUTE sp_addextendedproperty N'MS_Description', N'Employee', N'user', N'dbo', N'table', N'Employee', NULL, NULL
go
DECLARE @des VARCHAR(255)
SET @des = CASE N'主键ID'
WHEN N'主键ID' THEN N'主键ID'
ELSE N'主键ID'+'('+ N'主键ID' + ')'
END
EXECUTE sp_addextendedproperty N'MS_Description',
@des
, N'user', N'dbo', N'table', N'Employee', N'column', N'ID'
go
DECLARE @des VARCHAR(255)
SET @des = CASE N'用户名'
WHEN N'用户名' THEN N'用户名'
ELSE N'用户名'+'('+ N'用户名' + ')'
END
EXECUTE sp_addextendedproperty N'MS_Description',
@des
, N'user', N'dbo', N'table', N'Employee', N'column', N'Username'
go
DECLARE @des VARCHAR(255)
SET @des = CASE N'密码'
WHEN N'密码' THEN N'密码'
ELSE N'密码'+'('+ N'密码' + ')'
END
EXECUTE sp_addextendedproperty N'MS_Description',
@des
, N'user', N'dbo', N'table', N'Employee', N'column', N'Password'
go
DECLARE @des VARCHAR(255)
SET @des = CASE N'1 男 0 女'
WHEN N'性别' THEN N'性别'
ELSE N'性别'+'('+ N'1 男 0 女' + ')'
END
EXECUTE sp_addextendedproperty N'MS_Description',
@des
, N'user', N'dbo', N'table', N'Employee', N'column', N'Sex'
go
注意:本次使用的例子是在上篇文章的基础上进行修改的,包括数据库以及PD配置!!