桦山涧

桦山涧
Asp.net ---->知识改变命运!
posts - 261, comments - 171, trackbacks - 6, articles - 3
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

查询表字段、类型、是否主键的sql脚本

Posted on 2012-11-06 09:44  桦林  阅读(...)  评论(... 编辑 收藏

基于sqlserver数据库用C#winform写一个微型orm的代码生成器,期间用到要查询ms数据库的表结构,写一个脚本记录下:

 

 

select SO.name as TableName,SC.name as TableCloumn,ST.name as DataType,
(
SELECT COUNT(1AS Is_PK 
 FROM  syscolumns  
 JOIN  sysindexkeys  ON   syscolumns.id=sysindexkeys.id  AND  syscolumns.colid=sysindexkeys.colid   
 JOIN  sysindexes   ON   syscolumns.id=sysindexes.id  AND  sysindexkeys.indid=sysindexes.indid  
 JOIN  sysobjects   ON   sysindexes.name=sysobjects.name  AND  sysobjects.xtype='PK'
 WHERE syscolumns.name=SC.name AND syscolumns.id=object_id(SO.name)
as IsPrimaryKey
,SC.colid as CloumnIndex 
from sysobjects SO 
inner join syscolumns SC on SO.id = SC.id  and  SO.xtype = 'U' and  SO.status >= 0 and SO.name= '这里是数据库的表名'
inner join systypes ST on SC.xtype = ST.xusertype 
order by SO.name asc, SC.colorder asc