教您查询SQL字段属性的sql语句写法


  本文标签:SQL字段属性

  想要查看SQL字段属性,应该如何实现呢?下面为您介绍的就是查询SQL字段属性的sql语句写法,希望对您学习SQL字段属性方面有所启迪  。

  1. SELECT sysobjects.name AS tableName, syscolumns.name AS field, properties.[value] AS fieldRemark, systypes.name AS type,   
  2.  
  3. syscolumns.length, ISNULL(COLUMNPROPERTY(syscolumns.id, syscolumns.name, Scale), 0) AS [decimal], syscolumns.isnullable AS isnulls,   
  4.  
  5. CASE WHEN syscomments.text IS NULL THEN  ELSE syscomments.text END AS [Default],   
  6.  
  7. CASE WHEN COLUMNPROPERTY(syscolumns.id, syscolumns.name, IsIdentity) = 1 THEN Y ELSE N END AS [id], CASE WHEN EXISTS  
  8.  
  9. (SELECT 1 FROM sysobjects WHERE xtype = PK AND name IN (SELECT name FROM sysindexes WHERE indid IN (SELECT indid FROM sysindexkeys WHERE id = syscolumns.id AND colid = syscolumns.colid)))   
  10. THEN Y ELSE N END AS PK FROM syscolumns INNER JOIN sysobjects ON sysobjects.id = syscolumns.id INNER JOIN  
  11. systypes ON syscolumns.xtype = systypes.xtype LEFT OUTER JOIN sysproperties properties ON syscolumns.id = properties.id AND   
  12. syscolumns.colid = properties.smallid LEFT OUTER JOIN sysproperties ON sysobjects.id = sysproperties.id AND   
  13. sysproperties.smallid = 0 LEFT OUTER JOIN syscomments ON syscolumns.cdefault = syscomments.id  
  14. WHERE (sysobjects.xtype = U) and systypes.name<>sysname order by sysobjects.name  
  15.  
  16. 使用:把这段代码拷贝到查询分析器内选中相关查询的数据库名即可  。  
  17. //符合我自己使用的查询数据库字典方法:SQL server 200  
  18.  
  19. SELECT sysobjects.name AS 表名,--获取数据库表名  
  20.  
  21.        CASE WHEN EXISTS (SELECT 1 FROM sysobjects WHERE xtype = PK AND name IN  
  22.  
  23.                          (SELECT name FROM sysindexes WHERE indid IN   
  24.  
  25.                          (SELECT indid FROM sysindexkeys WHERE id = syscolumns.id AND colid = syscolumns.colid)))   
  26.  
  27.                          THEN K ELSE  END AS PK,--是否是主键  
  28. syscolumns.name AS 字段名,   
  29. properties.[value] AS 字段描述,  
  30. systypes.name AS 数据类型,   
  31. syscolumns.length AS 长度,   
  32. CASE syscolumns.isnullable WHEN 1 THEN 是 ELSE 否END AS 允许为空,   
  33.  
  34.        CASE WHEN syscomments.text IS NULL THEN  ELSE syscomments.text END AS 默认值  
  35.  
  36.        FROM syscolumns INNER JOIN  
  37.  
  38.                          sysobjects ON sysobjects.id = syscolumns.id INNER JOIN  
  39.  
  40.                          systypes ON syscolumns.xtype = systypes.xtype LEFT OUTER JOIN   
  41.  
  42.                          sysproperties properties ON syscolumns.id = properties.id AND   
  43.  
  44.                          syscolumns.colid = properties.smallid LEFT OUTER JOIN   
  45.  
  46.                          sysproperties ON sysobjects.id = sysproperties.id AND sysproperties.smallid = 0 LEFT OUTER JOIN  
  47.  
  48.                          syscomments ON syscolumns.cdefault = syscomments.id  
  49.  
  50.        WHERE (sysobjects.xtype = U) and systypes.name<>sysname   
  51. order by sysobjects.name desc