SQL Server2008中通过SQL获取表结构

SQL Server2008中通过SQL获取表结构


新增数据用户,角色为public。映射到待获取表结构的数据库上,授与用户在该数据库上的身份为db_owner


运行例如以下SQL语句:

select 
syscolumns.name as [Name] ,
systypes.name as [Type],
syscolumns.length AS [Size],
syscolumns.xprec As [Precision], 
ISNULL(syscolumns.scale, 0) AS [Scale],
sys.extended_properties.value as [Mark],
syscolumns.isnullable as [NULL],
(Case when exists(
select 1 from sysobjects
 inner join sysindexes on sysindexes.name = sysobjects.name  
 inner join sysindexkeys on sysindexes.id = sysindexkeys.id and  sysindexes.indid = sysindexkeys.indid 
 where xtype='PK' and parent_obj = syscolumns.id    
 and sysindexkeys.colid = syscolumns.colid) then 1 else 0 end) AS [PK],
(Case syscolumns.status when 128 then 1 else 0 end) AS [Identity]
 from syscolumns  
 inner join systypes on (  
syscolumns.xtype = systypes.xtype  
 and systypes.name <>'_default_'   
 and systypes.name<>'sysname')  
 left outer join sys.extended_properties on (  
sys.extended_properties.major_id=syscolumns.id   
 and minor_id=syscolumns.colid)  
 where syscolumns.id = (select id from sysobjects where name='NDS_TFileForm') 
 order by syscolumns.colid

posted on 2017-05-19 12:16  ljbguanli  阅读(185)  评论(0编辑  收藏  举报