查询表、字段、类型、是否主键、长度、小数位、是否允许空、默认值等详细查询

小果

SELECT
 (case when a.colorder=1 then d.name else ‘‘ end) as 表名,--如果表名相同就返回空
     a.colorder as 字段序号,
     a.name as 字段名,
     (case when COLUMNPROPERTY( a.id,a.name,‘IsIdentity‘)=1 then ‘√‘else ‘‘ end) as 标识,
     (case when (SELECT count(*) FROM sysobjects--查询主键
                     WHERE (name in
                             (SELECT name FROM sysindexes
                             WHERE (id = a.id)  AND (indid in
                                     (SELECT indid FROM sysindexkeys
                                       WHERE (id = a.id) AND (colid in
                                         (SELECT colid FROM syscolumns
                                         WHERE (id = a.id) AND (name = a.name))
                         )))))
         AND (xtype = ‘PK‘))>0 then ‘√‘ else ‘‘ end) as 主键,--查询主键END
 b.name as 类型,
 a.length as 占用字节数,
 COLUMNPROPERTY(a.id,a.name,‘PRECISION‘) as  长度,
 isnull(COLUMNPROPERTY(a.id,a.name,‘Scale‘),0) as 小数位数,
 (case when a.isnullable=1 then ‘√‘else ‘‘ end) as 允许空,
 isnull(e.text,‘‘) as 默认值,
 isnull(g.[value],‘‘) AS 字段说明
 FROM syscolumns a left join systypes b
 on a.xtype=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
 order by a.id,a.colorder

原文地址:https://www.cnblogs.com/ainidewen/p/9769858.html

时间: 2024-08-29 14:58:44

查询表、字段、类型、是否主键、长度、小数位、是否允许空、默认值等详细查询的相关文章

数据库字段设置为&lt;非空&gt;&lt;默认值&gt;

为什么数据库要设置默认值呢?因为我们希望在插入数据时,有意或无意间被忽略的字段能够交由MySQL按我们事先预想的方式处理,例如一些默认正常状态码.用户插入数据时候尚未设置的文本字段,诸如此类. 假设student表里有一个字段score被设置为<非空><默认值>,插入一条数据记录时,score字段值为空<''>,那这时score的字段值为<''>还是<默认值>? 设置默认值的作用只有在忽略了字段时才会发挥作用.何为忽略了字段,就是在写SQL插入语

Sqlserver获取所有数据库名,表信息,字段信息,主键信息,以及表结构等。[转]

--获取所有数据库名: SELECT name FROM master..sysdatabases WHERE name NOT IN ( 'master', 'model', 'msdb', 'tempdb', 'northwind','pubs' ) --获取某数据库的所有表: SELECT name FROM YiDianTongV2..sysobjects Where xtype='U' ORDER BY name --获取所有表名 --XType='U':表示所有用户表; --XTyp

MySql数据库在表中添加新字段,设置主键,设置外键,字段移动位置,以及修改数据库后如何进行部署和维护的总结

1,为当前已有的表添加新的字段 alter table student add studentName varchar(20) not null; 2,为当前已有的表中的字段设置为主键自增 alter table student add constraint PK_studentId primaryKey(studentId); 3,为当前已有的表中的字段设置为外键 alter table student add constraint FK_teacherId_studentInfo forei

在oracle中查询已知表名的表中所有字段名,每个字段是否是主键,是否是外键,是否为空的sql语句

查询表的所有列及其属性:select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = women;查找表的主键:select cu.* from user_cons_columns cu, user_constraints au where cu.cons

mysql 语句 字段 和结构主键外键的增删改

primary key 主键  notnull 不为空 unique 唯一       foreign key(外键) references t1(id)        auto_increment  递增,数字必须为整数 字段的增删改查   : 增  insert into t1 values(XX) 删delete from t1 where id = 1 改update t1 set name = XX  where id = 1 查 select * from t1 表格的增删改 增al

SQL多个主键的表,插入数据有重复时,查询数据的重复值?

SQL多个主键的表,插入数据有重复时,会提示违反主键约束不能插入的错误.那么,如何找到插入数据的重复值? 解决方法:使用group by 假设有个表#a,有saleid,vendorid,comid,price,saleprice,quantity等字段. 主键是:saleid,vendorid,comid三个.假设插入#a的数据源可能会有重复的. 即:saleid,vendorid,comid三个字段都一样的字段,那么插入#a的时候会报主键冲突,违反主键约束. 如果想找出#a表中插入重复的值可

MySQL存储过程---涉及多个表之间的关联关系,且各表中具有相同的字段,以主键id 为例,一定要使用 xx.id加以区分

此篇不放存储过程实例了. 这是我在开发存储过程中碰到的耗时最久的一次问题,存储过程可以跑,但是得到的结果不是自己想要的, 排查了很久,发现是此句中的id惹的祸:   SET projectInfoId =(SELECT id FROM temp.PROJECT_INFO p WHERE 1=1 AND p.ISSUE_KEY = projectKey); 修改为p.id 就OK了 要养成良好习惯,在写字段时记得一定使用 X.xx的格式,避免不必要的错误.

racle修改字段类型时报&quot;要更改的列必须为空&quot;处理方法

执行以下语句报"要修改数据类型,则要更改的列必须为空"      alter table 表名 modify (目标字段 varchar2(100)); 解决步骤: 第一步,在表中加一个临时字段      alter table 表名 add 临时字段 目标字段原来的类型; 第二步,将目标字段的值付给临时字段,并将目标字段置空      update 表名 set 临时字段=目标字段,目标字段=null; 第三步,修改目标类型      alter table 表名  modify 目

Mysql增加主键或者更改表的列为主键的sql语句

最近在整理关于MySql的东西,把一些需要记录的东西写下来,以便以后查询和浏览,以下是一些操作技巧. 添加表字段 alter table table1 add transactor varchar(10) not Null; alter table   table1 add id int unsigned not Null auto_increment primary key 修改某个表的字段类型及指定为空或非空 alter table 表名称 change 字段名称 字段名称 字段类型 [是否