前言
在上篇文章结尾的时候有说要研究实现【名称+备注来生成数据库注释】,呵呵比较顺利的是写完那篇文章不久就把这个给鼓捣出来了,关于它里面那些怪怪的语法没有找到合适的资料,但是明白了一点,在里面直接写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配置!!