今天整理资料时看到有这样一个查询数据库中的表和字段信息的语句,很强! 就是忘了当初谁写的了,印像中该是邹建所创。也贴出来以后备用吧。
1SELECT2
表名;;;=CASEa.colorder;WHEN1THENc.name;ELSE''END,3
序;;;;;=a.colorder,4
字段名;=a.name,5
标识;;;=CASECOLUMNPROPERTY(a.id,a.name,'IsIdentity');WHEN1THEN'√'ELSE''END,6
主键;;;=CASE7
WHENEXISTS(8
SELECT*9
FROMsysobjects10
WHERExtype='PK'ANDname;IN(11
SELECTname12
FROMsysindexes13
WHEREid=a.id;ANDindid;IN(14
SELECTindid15
FROMsysindexkeys16
WHEREid=a.id;ANDcolid;IN(17
SELECTcolid18
FROMsyscolumns19
WHEREid=a.id;ANDname=a.name20
)21
)22
)23
)24
THEN'√'25
ELSE''26
END,27
类型;;;=b.name,28
字节数;=a.length,29
长度;;;=COLUMNPROPERTY(a.id,a.name,'Precision'),30
小数;;;=CASEISNULL(COLUMNPROPERTY(a.id,a.name,'Scale'),0)31
WHEN0THEN''32
ELSECAST(COLUMNPROPERTY(a.id,a.name,'Scale');ASVARCHAR)33
END,34
允许空;=CASEa.isnullable;WHEN1THEN'√'ELSE''END,35
默认值;=ISNULL(d.[text],''),36
说明;;;=ISNULL(e.[value],'')37
FROMsyscolumns;a38
LEFTJOINsystypes;;;;;;b;ONa.xtype=b.xusertype39
INNERJOINsysobjects;;;;c;ONa.id=c.id;ANDc.xtype='U'ANDc.name<>'dtproperties'40
LEFTJOINsyscomments;;;d;ONa.cdefault=d.id41
LEFTJOINsysproperties;e;ONa.id=e.id;ANDa.colid=e.smallid42
ORDERBYc.name,;a.colorder我修改一下,变个精简版本的:
12select a.name, b.xtype,b.name3from syscolumns a4inner; JOIN systypes; b5ON a.xtype=b.xusertype6inner join sysobjects c ON7a.id=c.id AND c.xtype='U' AND c.name<>'dtproperties' where c.name = 表名
http://ring1981.cnblogs.com/archive/2006/06/22/432857.html