代码改变世界

SQL Server 中获取一个表的字段信息

  音乐让我说  阅读(736)  评论(0编辑  收藏  举报

直接贴代码了:

复制代码
SELECT sysobjects.name AS TableName,
                           syscolumns.Id AS TableId,
                           syscolumns.name AS DbColumnName,
                           systypes.name AS DataType,
                           syscolumns.length AS [Length],
                           sys.extended_properties.[value] AS [ColumnDescription],
                           syscomments.text AS DefaultValue,
                           syscolumns.isnullable AS IsNullable,
                           columnproperty(syscolumns.id,syscolumns.name,'IsIdentity')as IsIdentity,
                           (CASE
                                WHEN EXISTS
                                       ( 
                                                 select 1
                                                from sysindexes i
                                                join sysindexkeys k on i.id = k.id and i.indid = k.indid
                                                join sysobjects o on i.id = o.id
                                                join syscolumns c on i.id=c.id and k.colid = c.colid
                                                where o.xtype = 'U' 
                                                and exists(select 1 from sysobjects where xtype = 'PK' and name = i.name) 
                                                and o.name=sysobjects.name and c.name=syscolumns.name
                                       ) THEN 1
                                ELSE 0
                            END) AS IsPrimaryKey,
                            ISNULL(syscolumns.prec,0) as Scale,
                            ISNULL(syscolumns.scale,0) as DecimalDigits
                    FROM syscolumns
                    INNER JOIN systypes ON syscolumns.xtype = systypes.xtype
                    LEFT JOIN sysobjects ON syscolumns.id = sysobjects.id
                    LEFT OUTER JOIN sys.extended_properties ON (sys.extended_properties.minor_id = syscolumns.colid
                                                                AND sys.extended_properties.major_id = syscolumns.id)
                    LEFT OUTER JOIN syscomments ON syscolumns.cdefault = syscomments.id
                    WHERE syscolumns.id IN
                        (SELECT id
                         FROM sysobjects
                         WHERE xtype IN('u',
                                        'v') )
                      AND (systypes.name <> 'sysname')
                      AND sysobjects.name='t_blog'
                      AND systypes.name<>'geometry'
                      AND systypes.name<>'geography'
                    ORDER BY syscolumns.colid
复制代码

示例:

 

谢谢浏览!

点击右上角即可分享
微信分享提示