SQLServer2005,2000获取表结构:字段名、类型、长度、主键、非空、注释

SQLServer 2005

SELECT
    d.name N‘TableName‘,
    d.xtype N‘TableType‘,
    a.colorder N‘ColumnIndex‘,
    a.name N‘ColumnName‘,
    (case when COLUMNPROPERTY( a.id,a.name,‘IsIdentity‘)=1 then ‘1‘else ‘0‘ end) N‘IdnetityFG‘,
    (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 ‘1‘ else ‘0‘ end
    ) N‘IsPK‘,
    b.name N‘DataType‘,
    COLUMNPROPERTY(a.id,a.name,‘PRECISION‘) as N‘Length‘,
    (case when a.isnullable=1 then ‘1‘else ‘0‘ end) N‘IsNullable‘,
    isnull(e.text,‘‘) N‘Default‘,
    g.value N‘Description‘
FROM   syscolumns   a
    left join systypes b on   a.xtype=b.xusertype
    inner join sysobjects d on a.id=d.id   and   d.xtype in (‘U‘,‘V‘) and   d.name<>‘dtproperties‘
    left join syscomments e on a.cdefault=e.id
    LEFT OUTER JOIN sys.extended_properties AS g ON a.id = g.major_id AND a.colid = g.minor_id
order by object_name(a.id),a.colorder

SQLServer2000

SELECT
    d.name N‘TableName‘,
    d.xtype N‘TableType‘,
    a.colorder N‘ColumnIndex‘,
    a.name N‘ColumnName‘,
    (case when COLUMNPROPERTY( a.id,a.name,‘IsIdentity‘)=1 then ‘1‘else ‘0‘ end) N‘IdnetityFG‘,
    (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 ‘1‘ else ‘0‘ end
    ) N‘IsPK‘,
    b.name N‘DataType‘,
    COLUMNPROPERTY(a.id,a.name,‘PRECISION‘) as N‘Length‘,
    (case when a.isnullable=1 then ‘1‘else ‘0‘ end) N‘IsNullable‘,
    isnull(e.text,‘‘) N‘Default‘,
    g.value N‘Description‘
FROM   syscolumns   a
    left join systypes b on   a.xtype=b.xusertype
    inner join sysobjects d on a.id=d.id   and   d.xtype in (‘U‘,‘V‘) and   d.name<>‘dtproperties‘
    left join syscomments e on a.cdefault=e.id
    left join sysproperties g on a.id=g.id and a.colid=g.smallid
order by object_name(a.id),a.colorder

--select * from sysproperties

SQLServer2005,2000获取表结构:字段名、类型、长度、主键、非空、注释

时间: 2024-10-22 01:32:44

SQLServer2005,2000获取表结构:字段名、类型、长度、主键、非空、注释的相关文章

Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)

Java 通过JDBC查询数据库表结构(字段名称,类型,长度等) 发布者:唛唛家的豆子 时间:2012-11-20 17:54:02 在JDBCPreparedStatement.executeQuery().getMetaData();后,我们可以通过ResultSetMetaData对象查询返回结果集的源数据信息,也就是表结构信息. 示例代码如下: package astar.sutil.db; import java.sql.Connection; import java.sql.Driv

oracle如何向空表中添加一个类型为clob的非空列

一般的添加非空列的步骤是:先add可以为空的列,然后update该列为一个值(比如0),最后modify该列的类型 但是遇到类型为clob的就不行了.在modify这步时报错:ORA-22296:invalid ALTER TABLE option for conversion of Long datatype to LOB,于是去找了下22296错误的详细信息:(http://docs.oracle.com/cd/E11882_01/server.112/e17766/e19999.htm#O

数据库,表,字段,类型等查询

--获取所有数据库名 SELECT Name FROM Master..SysDatabases ORDER BY Name --获取所有表名 XType='U':表示所有用户表; XType='S':表示所有系统表; SELECT Name FROM [GWI-Pay]..SysObjects Where XType='U' ORDER BY Name --获取表中的字段名 SELECT Name FROM SysColumns WHERE id=Object_Id('Order') --获取

Oracle获取表结构信息:表名、是否视图、字段名、类型、长度、非空、主键

select a.TABLE_NAME as "TableName", case when (select count(*) from user_views v where v.VIEW_NAME =a.TABLE_NAME )>0 then 'V' else 'U'end as "TableType", a.COLUMN_NAME as "ColumnName", A.COLUMN_ID as "ColumnIndex"

获取sqlserver数据库中所有库、表、字段名的方法

1.获取所有数据库名: SELECT Name from Master..SysDatabases ORDER BY Name 2.获取所有表名: SELECT Name from DatabaseName..SysObjects Where XType='U' ORDER BY Name XType='U':表示所有用户表; XType='S':表示所有系统表; 3.获取所有字段名: SELECT Name from SysColumns WHERE id=Object_Id('TableNa

Sqlite如何修改表结构字段类型

SQLite 仅仅支持 ALTER TABLE 语句的一部分功能,我们可以用 ALTER TABLE 语句来更改一个表的名字,也可向表中增加一个字段(列),但是我们不能删除一个已经存在的字段,或者更改一个已经存在的字段的名称.数据类型.限定符等等. 改变表名 - ALTER TABLE 旧表名 RENAME TO 新表名 增加一列 - ALTER TABLE 表名 ADD COLUMN 列名 数据类型 而修改一列无法像其他数据库那样直接以“ALTER TABLE 表名 ADD COLUMN 列名

KO ------- 表中字段名和实体类属性名不一致

-----------------------siwuxie095 KO ------- 表中字段名和实体类属性名不一致 如果数据库表中的字段名和实体类的属性名不一致,那么在查询时, 相应字段的结果就会为空 (一)问题复现 1.先创建数据库 mybatis_db, 再创建表 t_user,并插入若干数据 注意:user_id 为主键,且为自动增长 2.创建实体类 User.java: package com.siwuxie095.entity; // 实体类 public class User

SQL Server2008中通过SQL获取表结构

SQL Server2008中通过SQL获取表结构 新增数据用户,角色为public.映射到待获取表结构的数据库上,授与用户在该数据库上的身份为db_owner 运行例如以下SQL语句: select syscolumns.name as [Name] , systypes.name as [Type], syscolumns.length AS [Size], syscolumns.xprec As [Precision], ISNULL(syscolumns.scale, 0) AS [Sc

js获取表单里的参数并返回键值对

/** * js获取表单里的参数并返回键值对 * @version 1 * @param {Object} - js表单对象 * @returns {Object} - 表单参数键值对 */ function getFormData(form){ if (!form) { return {}; } var params = {} , elems = form.elements ; for(var i in elems){ var elem = elems[i]; if(elem.nodeName