sql语句查询数据库中的表名/列名/主键/自动增长值实例

sql语句查询数据库中的表名/列名/主键/自动增长值

----查询数据库中用户创建的表

----jsj01 为数据库名

select name tablename from jsj01..sysobjects where type='U' and name not in ('dtproperties')

--查询表里的字段信息

---docs为表名
---- select * from syscolumns where id = object_id('docs')

----查询数据库中所有类型
----select name,xtype from systypes

----两表联查,显示表中所有字段和对应的数据类型

----syscolumns里字段‘xtype' 对应 systypes里的 ‘xusertype' ,systypes 里的‘name'字段就是字段的数据类型
----docs 为表名
select a.name as fieldname,b.name as type from
syscolumns as a
join systypes as b
on a.xtype = b.xusertype
where id=object_id('docs')

----docs为数据表名 : 查询表字段、类型、说明

select a.name fieldname,b.name type,c.value comment from
syscolumns as a
full join systypes as b
on a.xtype = b.xusertype
full join ::fn_listextendedproperty(NULL, 'user', 'dbo', 'table', 'docs', 'column', default) as c ----这是2000版本,2005把user改为schema
on a.name=c.objname COLLATE Chinese_PRC_CI_AS -----排序规则(有时不加也可以,如果两表的排序规则不同,则会报错)
--join sysproperties c
--on a.id=c.major_id
where id=object_id('docs')

----查询表里的主键,没有主键为空,如果是多个组合主键就有多个值 pk为主键 fk为外键
--- jsj01 为数据库名 docs为表名 fk表示外键

select column_name as primarykey,* from
[jsj01].INFORMATION_SCHEMA.KEY_COLUMN_USAGE
where Table_name='docs' and constraint_name like 'fk_%'

--select * from sysobjects WHERE OBJECT_NAME(sysobjects.parent_obj)='docs' --and xtype='pk'
--select * from sysconstraints where id = object_id('docs')
--select * from syscolumns where id = object_id('docs')
--select * from sysindexes
--select * from sysindexkeys

----查询表中自动增长的字段,没有为空,如果有就只有一个
----docs为表名

SELECT a.name column_name,b.name data_type
FROM syscolumns a,systypes b
WHERE a.id=object_id('docs') and a.xtype = b.xusertype
AND a.autoval is not null

作者 pukuimin1226

(0)

相关推荐

  • Mysql中返回一个数据库的所有表名,列名数据类型备注

    desc 表名; show columns from 表名; describe 表名; show create table 表名; use information_schema select * from columns where table_name='表名'; 顺便记下: show databases; 也可以这样 use information_schema select table_schema,table_name from tables where table_schema='数据

  • MySQL导出所有Index和约束的方法

    本文汇总了MySQL导出所有Index 和 约束的方法,提供给大家以方便大家查询使用.具体如下: 1. 导出创建自增字段语句: SELECT CONCAT( 'ALTER TABLE `', TABLE_NAME, '` ', 'MODIFY COLUMN `', COLUMN_NAME, '` ', IF(UPPER(DATA_TYPE) = 'INT', REPLACE( SUBSTRING_INDEX( UPPER(COLUMN_TYPE), ')', 1 ), 'INT', 'INTEG

  • MySQL学习笔记4:完整性约束限制字段

    完整性约束是对字段进行限制,从而符合该字段达到我们期望的效果比如字段含有默认值,不能是NULL等 直观点说:如果插入的数据不满足限制要求,数据库管理系统就拒绝执行操作 设置表的主键 主键能够标识表中每条信息的唯一性,如同身份证号码和人的关系 人可以同名,但是身份证号码却是唯一的, 创建主键的目的在于快速查找到表中的某一条信息 单字段主键 复制代码 代码如下: mysql> create table student( -> id int primary key, -> name varch

  • SQL Server约束增强的两点建议

    在许多情况下,对外键使用更复杂的逻辑表达式是非常有用的. 此外,在某些情况下能够在索引视图创建约束也将非常实用. 我将举例说明,同时我希望针对此文的投票链接会尽快加上.当外键中需要更为复杂的逻辑表达式时 考虑下面的简单常识: 您的设备的最大电流不能超过您插入到它的电路的最大电流. 假设下面的表存储电路和设备数据: 复制代码 代码如下: CREATE TABLE Data.Curcuits(CurcuitID INT NOT NULL CONSTRAINT PK_Curcuits PRIMARY

  • sql脚本查询数据库表,数据,结构,约束等操作的方法

    1.查询当前数据库所有表 复制代码 代码如下: SELECT     O.object_id AS TableId,    TableName=O.name  ,    TableDesc= O.type FROM sys.columns C    INNER JOIN sys.objects O        ON C.[object_id]=O.[object_id]            AND O.type='U'            AND O.is_ms_shipped=0   

  • mysql创建Bitmap_Join_Indexes中的约束与索引

    测试过程如下:create table sales  as select * from sh.sales: create table customers as  select * from sh.customers: create unique index CUST_ID_un on customers(CUST_ID); 创建: Bitmap Join Indexes create bitmap index sales_cust_gender_bjix on sales(customers.c

  • MySQL 添加、修改、删除表的列及约束等表的定义

    ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30); 删除列:alter table 表名 drop column 列名; 修改列名MySQL: alter table bbb change nnnnn hh int; 修改列名SQLServer:exec sp_rename't_stude

  • 使用sql语句创建和删除约束示例代码

    使用sql语句创建和删除约束 约束类型 主键约束(Primary Key constraint) --:要求主键列数据唯一,并且不允许为空. 唯一约束(Unique constraint) --:要求该列唯一,允许为空,但只能出现一个空值. 检查约束(Check constraint) --:某列取值范围限制,格式限制等,如有关年龄.邮箱(必须有@)的约束. 默认约束(Default constraint) --:某列的默认值,如在数据库里有一项数据很多重复,可以设为默认值. 外键约束(Fore

  • SQLSERVER实现更改表名,更改列名,更改约束代码

    废话不多说了,具体详情如下所示: 1.修改表名 格式:sp_rename tablename,newtablename sp_rename tablename,newtablename 2.修改字段名 格式:sp_rename 'tablename.colname',newcolname,'column' sp_rename 'tablename.colname',newcolname,'column' 3.添加字段 格式:alter table table_name add new_colum

  • sqlserver 修改列名及表名的sql语句

    代码如下: EXEC sp_rename '表名.[原列名]', '新列名', 'column' Transact-SQL 参考 sp_rename 更改当前数据库中用户创建对象(如表.列或用户定义数据类型)的名称. 语法 sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name' [ , [ @objtype = ] 'object_type' ] 参数 [@objname =] 'object_name' 是用户对象(

随机推荐