sqlserver擷取所有表和表欄位

來源:互聯網
上載者:User

標籤:let   --   server   char   exist   arc   name   dex   pms   

SELECT                             [number]=a.colorder,                             [column] =a.name, [datatype]=b.name, [length]=COLUMNPROPERTY(a.id,a.name,‘PRECISION‘), [identity]=case when COLUMNPROPERTY( a.id,a.name,‘IsIdentity‘)=1 then ‘√‘else ‘‘ end,                             [key]=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,                             [isnullable]=case when a.isnullable=1 then ‘√‘else ‘‘ end,                             [default]=isnull(e.text,‘‘),                             [remark]=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 sys.extended_properties g on a.id=g.major_id and a.colid=g.minor_id                              left join sys.extended_properties f on d.id=f.major_id and f.minor_id=0 where d.name=‘BPMS_Organization‘ order by a.id,a.colorder
 SELECT    ID = D.ID ,                                                                    Field = CASE WHEN A.COLORDER = 1 THEN D.NAME                                                                              ELSE ‘‘                                                                         END ,                                                                    Remark = CASE WHEN A.COLORDER = 1 THEN ISNULL(F.VALUE, ‘‘)                                                                              ELSE ‘‘                                                                         END ,                                                                    ParentID = 0 ,                                                                    colorder = 0                                                          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 sys.extended_properties F ON D.ID = F.major_id                                                          WHERE     a.COLORDER = 1                                                                    AND F.minor_id = 0

  

DECLARE @TableInfo TABLE                                (                                  name VARCHAR(50) ,                                  [rows] CHAR(11) ,                                  reserved VARCHAR(50) ,                                  data VARCHAR(50) ,                                  index_size VARCHAR(50) ,                                  unused VARCHAR(50)                                )                            DECLARE @TableName TABLE ( name VARCHAR(50) )                            DECLARE @name VARCHAR(50)                            INSERT  INTO @TableName                                    ( name                                    )                                    SELECT  o.name                                    FROM    sysobjects o ,                                            sysindexes i                                    WHERE   o.id = i.id                                            AND o.Xtype = ‘U‘                                            AND i.indid < 2                                    ORDER BY i.rows DESC ,                                            o.name                                        WHILE EXISTS ( SELECT   1                                           FROM     @TableName )                                 BEGIN                                    SELECT TOP 1                                            @name = name                                    FROM    @TableName                                     DELETE @TableName WHERE [email protected]                                    INSERT  INTO @TableInfo                                            ( name ,                                              [rows] ,                                              reserved ,                                              data ,                                              index_size ,                                              unused                                                                 )                                            EXEC sys.sp_spaceused @name                                END            --表名,記錄數,使用大小,索引所使使用大小,未用的空間量,表說明                                    SELECT F.*,p.tdescription FROM @TableInfo F LEFT JOIN (                                    SELECT  name = CASE WHEN A.COLORDER = 1 THEN D.NAME                                                      ELSE ‘‘                                                 END ,                                            tdescription = CASE WHEN A.COLORDER = 1 THEN ISNULL(F.VALUE, ‘‘)                                                       ELSE ‘‘                                                  END                                    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 sys.extended_properties F ON D.ID = F.major_id                                     WHERE   a.COLORDER = 1                                            AND F.minor_id = 0                                                )P ON F.name=p.name

  

SELECT  a.name                                                    FROM    SYSCOLUMNS A                                                            INNER JOIN SYSOBJECTS D ON A.ID = D.ID                                                              AND D.XTYPE = ‘U‘                                                              AND D.NAME <> ‘DTPROPERTIES‘                                                    WHERE   d.name = ‘BPMS_Button‘ AND 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 ) ) )

  

  

sqlserver擷取所有表和表欄位

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.