首页 > 数据库技术 > 详细

查询sqlserver中表信息

时间:2019-05-20 16:11:07      阅读:151      评论:0      收藏:0      [点我收藏+]

 

ALTER PROCEDURE [dbo].[GetTableInfo]
 @tableName NVARCHAR(MAX)
AS
BEGIN
SELECT
--                 CASE
--            WHEN col.colorder = 1 THEN
--                obj.name
--            ELSE
--                ‘‘
--        END AS 表名,
             obj.name AS 表名,
       col.colorder AS 序号,
       col.name AS 列名,
       ISNULL(ep.[value], ‘‘) AS 列说明,
       t.name AS 数据类型,
       col.length AS 长度,
       ISNULL(COLUMNPROPERTY(col.id, col.name, Scale), 0) AS 小数位数,
       CASE
           WHEN COLUMNPROPERTY(col.id, col.name, IsIdentity) = 1 THEN
               
           ELSE
               ‘‘
       END AS 标识,
       CASE
           WHEN EXISTS
                (
                    SELECT 1
                    FROM dbo.sysindexes si
                        INNER JOIN dbo.sysindexkeys sik
                            ON si.id = sik.id
                               AND si.indid = sik.indid
                        INNER JOIN dbo.syscolumns sc
                            ON sc.id = sik.id
                               AND sc.colid = sik.colid
                        INNER JOIN dbo.sysobjects so
                            ON so.name = si.name
                               AND so.xtype = PK
                    WHERE sc.id = col.id
                          AND sc.colid = col.colid
                ) THEN
               
           ELSE
               ‘‘
       END AS 主键,
       CASE
           WHEN col.isnullable = 1 THEN
               
           ELSE
               ‘‘
       END AS 允许空,
       ISNULL(comm.text, ‘‘) AS 默认值
FROM dbo.syscolumns col
    LEFT JOIN dbo.systypes t
        ON col.xtype = t.xusertype
    INNER JOIN dbo.sysobjects obj
        ON col.id = obj.id
           AND obj.xtype = U
           AND obj.status >= 0
    LEFT JOIN dbo.syscomments comm
        ON col.cdefault = comm.id
    LEFT JOIN sys.extended_properties ep
        ON col.id = ep.major_id
           AND col.colid = ep.minor_id
           AND ep.name = MS_Description
    LEFT JOIN sys.extended_properties epTwo
        ON obj.id = epTwo.major_id
           AND epTwo.minor_id = 0
           AND epTwo.name = MS_Description
WHERE obj.name = @tableName --表名
ORDER BY col.colorder;

END

 

execute GetTableInfo ‘表名‘

查询sqlserver中表信息

原文:https://www.cnblogs.com/refuge/p/10894413.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!