| 数据库的表和字段的注释。表的结构。 http://spaces.msn.com/members/jhwcn/ | ||||||||||||||||||||||||||||||||
|
这里的表结构指的表的基本信息:表名,表的注释(备注),字段名,字段类型,长度,是否允许空,缺省值,字段注释(备注)。
主要的是注释..你的表明叫lcxxb,字段名叫lcmc,智商300的用户也看不懂你这是拼音,意思是"流程信息表"和"流程名称"。大家的思路都不一样。
我要做到的就是让用户看到的是"流程信息表"和"流程名称"而实际操作的是lcxxb和lcmc。 你自己建个表XXX来保存lcxxb,lcmc和"流程信息表","流程名称"的对应吧。是相当麻烦的事情, 1,造成数据冗余,人家数据库基本上都能让你给表和字段写注释,你还自己搞一套.. 2,每次修改表都要去修改一下这张表,删除的表和字段要删除,更新的表和字段要更新,新建的表和字段要新建,累.. 3,每次创建数据库都要独立的再填写表XXX的内容。每次修改了数据库设计,创建数据库的程序也要跟着修改。 所以俺还是老老实实用数据库提供的注释或备注或数据字典功能吧。
但是这又涉及一个问题:各种数据库保存注释(备注)的方法不一样,虽然现在只用MS Sql server,但难保以后不会用Oracle。要不是大家都各搞一套,巴别塔也许早就建成了。 SQL server下的方法:
CREATE VIEW dbo.Data_Frame
AS SELECT dbo.syscolumns.name AS Name, dbo.systypes.name AS Type, dbo.syscolumns.length AS Width, dbo.syscolumns.isnullable AS IsNull, dbo.sysproperties.[value], dbo.sysobjects.name AS Table_Name FROM dbo.sysobjects INNER JOIN dbo.syscolumns ON dbo.sysobjects.id = dbo.syscolumns.id INNER JOIN dbo.sysproperties ON dbo.syscolumns.colid = dbo.sysproperties.smallid AND dbo.syscolumns.id = dbo.sysproperties.id INNER JOIN dbo.systypes ON dbo.syscolumns.xtype = dbo.systypes.xtype AND dbo.syscolumns.xusertype = dbo.systypes.xusertype 最后输出的是: 列名
系统类型 限制长度 是否允许为空 备注 所在表 可以进一步根据需要增加/删除自己希望的部分。
调用:
Select * From [自定义的视图名称] Where Table_Name='[希望检索的表名]' 或者 取得一个表中所有的字段列表及字段描述的方法: 字段名列表:
select Name from syscolumns where id=object_id('custmoerinfo') 字段描述:
select * from ::fn_listextendedproperty(NULL, 'user', 'dbo', 'table', 'custmoerinfo','column', default) 创建表的SQL语句如下
--" 创建数据表 create table TABLE_TEST ( NAME varchar2(40) not null, SEX varchar2(1) default 'Y' not null, BIRTHDAY date not null, HEIGHT number(3,2), WEIGHT number(3,2), MEMO blob ); -- 给列添加备注 comment on column TABLE_TEST.NAME is '姓名'; comment on column TABLE_TEST.SEX is '性别'; comment on column TABLE_TEST.BIRTHDAY is '生日'; comment on column TABLE_TEST.HEIGHT is '身高'; comment on column TABLE_TEST.WEIGHT is '体重'; comment on column TABLE_TEST.MEMO is '备注'; -- 创建约束关系 主键 外键 其他 alter table TABLE_TEST add constraint TB_TEST_P_NAME primary key (NAME); 数据表创建完毕,执行下列SQL语句: select A.column_name 字段名,A.data_type 数据类型,A.data_length 长度,A.data_precision 整数位, A.Data_Scale 小数位,A.nullable 允许空值,A.Data_default 缺省值,B.comments 备注 from user_tab_columns A,user_col_comments B where A.Table_Name = B.Table_Name and A.Column_Name = B.Column_Name and A.Table_Name = 'TABLE_TEST' 我们可以得出以下结果:
MySql是怎么弄的?有一个词中文读gan,英文读f*ck,法文读什么?-_-!
学习数据库的一些资料: 存储过程的好处:1编译2封装3重复使用4安全性5减少网络流量 JDBC读取字段需要按顺序的原因?:SQL数据库在构造虚拟表的时候就是以一种先进先出的原则,把所有的数据排列在一个内存段之中,通过顺序的读取,将数据逐一的读取,而如果跳过某个具体的字段获取下一个字段的信息,系统就会将原来的那个字段的信息丢失,以释放内存,这是出于系统构造的简单性和系统的内存最低化的要求,所以这样也保证了有限的内存资源得到最充分的发挥。? 在SQL Server中保存和输出图片http://www.pcdog.com/p/html/2004124/41220041381_1.htm 很好的一个电子书下载地址http://www.ibook8.com/book/shuju.htm | ||||||||||||||||||||||||||||||||
浙公网安备 33010602011771号