擷取資料庫所有列以及列的類型是否為空白是否為預設值是否為主鍵,資料庫預設值

來源:互聯網
上載者:User

擷取資料庫所有列以及列的類型是否為空白是否為預設值是否為主鍵,資料庫預設值

通過各種查資料,並且閱讀sqlserver內建的預存程序總結出來的

SELECT DISTINCT c.name AS tablename, a.name,a.is_nullable,dbo.GetRemoveParentheses(d.text) AS defaultvalue,CASE WHEN (a.name = index_col (c.name, f.index_id,  1) or         a.name = index_col (c.name, f.index_id,  2) or         a.name = index_col (c.name, f.index_id,  3) or         a.name = index_col (c.name, f.index_id,  4) or         a.name = index_col (c.name, f.index_id,  5) or         a.name = index_col (c.name, f.index_id,  6) or         a.name = index_col (c.name, f.index_id,  7) or         a.name = index_col (c.name, f.index_id,  8) or         a.name = index_col (c.name, f.index_id,  9) or         a.name = index_col (c.name, f.index_id, 10) or         a.name = index_col (c.name, f.index_id, 11) or         a.name = index_col (c.name, f.index_id, 12) or         a.name = index_col (c.name, f.index_id, 13) or         a.name = index_col (c.name, f.index_id, 14) or         a.name = index_col (c.name, f.index_id, 15) or         a.name = index_col (c.name, f.index_id, 16)) THEN 1 ELSE 0 END AS isPrimary ,        CASE a.precision          WHEN 0          THEN CASE a.is_ansi_padded                 WHEN 1                 THEN CONVERT(NVARCHAR(15), b.name + '('                      + CONVERT(NVARCHAR(10), a.max_length) + ')')                 WHEN 0 THEN b.name               END          ELSE CASE a.scale                 WHEN 0 THEN b.name                 ELSE b.name + '(' + CONVERT(NVARCHAR(10), a.precision) + ','                      + CONVERT(NVARCHAR(10), a.scale) + ')'               END        END AS typelength FROM  sys.columns a        LEFT JOIN sys.types b ON a.system_type_id = b.system_type_id                                 AND a.user_type_id = b.user_type_idINNER JOIN sysobjects c ON c.id = a.object_idLEFT JOIN syscomments d ON d.id = a.default_object_idINNER JOIN sys.key_constraints e ON e.parent_object_id = a.object_idINNER JOIN sys.indexes f ON e.unique_index_id = f.index_idWHERE c.xtype = 'u' AND f.is_primary_key = 1  


相關文章

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.