51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> sqlserver >> 文章正文

获取sql2005的所有用户表的SQL语句

更新时间:2012-4-7:  来源:51代码网

获取SQL2000的表结构是这样的, 那么SQL2005呢, 有人会写吗?

SELECT  
  表名 = case when a.colorder=1 then d.name else ' ' end, 
  表说明 = case when a.colorder=1 then isnull(f.value, ' ') else ' ' end, 
  字段序号 = a.colorder, 
  字段名 = a.name, 
  标识 = case when COLUMNPROPERTY( a.id,a.name, 'IsIdentity ')=1 then '√ 'else ' ' end, 
  主键 = case when exists(SELECT 1 FROM sysobjects where xtype= 'PK ' and parent_obj=a.id and name in ( 
  SELECT name FROM sysindexes WHERE indid in( 
  SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then '√ ' else ' ' end, 
  类型 = b.name, 
  占用字节数 = a.length, 
  长度 = COLUMNPROPERTY(a.id,a.name, 'PRECISION '), 
  小数位数 = isnull(COLUMNPROPERTY(a.id,a.name, 'Scale '),0), 
  允许空 = case when a.isnullable=1 then '√ 'else ' ' end, 
  默认值 = isnull(e.text, ' '), 
  字段说明 = isnull(g.[value], ' ') 
FROM  
  syscolumns a 
left join  
  systypes b  
on  
  a.xusertype=b.xusertype 
inner join  
  sysobjects d  
on  
  a.id=d.id and d.xtype= 'U ' and d.name <> 'dtproperties ' 
left join  
  syscomments e  
on  
  a.cdefault=e.id 
left join  
  sysproperties g  
on  
  a.id=g.id and a.colid=g.smallid  
left join  
  sysproperties f  
on  
  d.id=f.id and f.smallid=0 
where  
  d.name= '要查询的表 ' --如果只查询指定表,加上此条件 
order by  
  a.id,a.colorder

[1] [2] 下一页

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 赞助商链接
    推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |