sqlserver数据库中的表、字段sql语句

1.系统表sysobjects

在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都对应一行。










































































































列名 数据类型 说明

name

sysname

对象名

id

int

对象标识号

xtype

char(2)

对象类型。可以是以下对象类型之一:

AF = 聚合函数 (CLR)

C = CHECK 约束

D = 默认值或 DEFAULT 约束

F = FOREIGN KEY 约束

L = 日志

FN = 标量函数

FS = 程序集 (CLR) 标量函数

FT = 程序集 (CLR) 表值函数

IF = 内联表函数

IT = 内部表

P = 存储过程

PC = 程序集 (CLR) 存储过程

PK = PRIMARY KEY 约束(类型为 K)

RF = 复制筛选存储过程

S = 系统表

SN = 同义词

SQ = 服务队列

TA = 程序集 (CLR) DML 触发器

TF = 表函数

TR = SQL DML 触发器

TT = 表类型

U = 用户表

UQ = UNIQUE 约束(类型为 K)

V = 视图

X = 扩展存储过程

uid

smallint

对象所有者的架构 ID。

对于从旧版 SQL Server 升级的数据库,架构 ID 等于所有者的用户 ID。

重要提示:

如果使用以下任何一个 SQL Server DDL 语句,则必须使用 sys.objects 目录视图而不是 sys.sysobjects。 CREATE | ALTER | DROP USER CREATE | ALTER | DROP ROLE CREATE | ALTER | DROP APPLICATION ROLE CREATE SCHEMA ALTER AUTHORIZATION ON OBJECT

如果用户数和角色数超过 32,767,则发生溢出或返回 NULL。

有关详细信息,请参阅查询 SQL Server 系统目录

info

smallint

标识为仅供参考。不提供支持。不保证以后的兼容性。

status

int

标识为仅供参考。不提供支持。不保证以后的兼容性。

base_schema_ver

int

标识为仅供参考。不提供支持。不保证以后的兼容性。

replinfo

int

标识为仅供参考。不提供支持。不保证以后的兼容性。

parent_obj

int

父对象的对象标识号。例如,表 ID(如果父对象是触发器或约束)。

crdate

datetime

对象的创建日期。

ftcatid

smallint

注册为使用全文索引的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0。

schema_ver

int

在每次更改表的架构时都会增加的版本号。始终返回 0。

stats_schema_ver

int

标识为仅供参考。不提供支持。不保证以后的兼容性。

type

char(2)

对象类型。可以是下列值之一:

AF = 聚合函数 (CLR)

C = CHECK 约束

D = 默认值或 DEFAULT 约束

F = FOREIGN KEY 约束

FN = 标量函数

FS = 程序集 (CLR) 标量函数

FT = 程序集 (CLR) 表值函数 IF = 内联表函数

IT - 内部表

K = PRIMARY KEY 或 UNIQUE 约束

L = 日志

P = 存储过程

PC = 程序集 (CLR) 存储过程

R = 规则

RF = 复制筛选存储过程

S = 系统表

SN = 同义词

SQ = 服务队列

TA = 程序集 (CLR) DML 触发器

TF = 表函数

TR = SQL DML 触发器

TT = 表类型

U = 用户表

V = 视图

X = 扩展存储过程

userstat

smallint

标识为仅供参考。不提供支持。不保证以后的兼容性。

sysstat

smallint

标识为仅供参考。不提供支持。不保证以后的兼容性。

indexdel

smallint

标识为仅供参考。不提供支持。不保证以后的兼容性。

refdate

datetime

标识为仅供参考。不提供支持。不保证以后的兼容性。

version

int

标识为仅供参考。不提供支持。不保证以后的兼容性。

deltrig

int

标识为仅供参考。不提供支持。不保证以后的兼容性。

instrig

int

标识为仅供参考。不提供支持。不保证以后的兼容性。

updtrig

int

标识为仅供参考。不提供支持。不保证以后的兼容性。

seltrig

int

标识为仅供参考。不提供支持。不保证以后的兼容性。

category

int

用于发布、约束和标识。

cache

smallint

标识为仅供参考。不提供支持。不保证以后的兼容性。

参考 sys.sysobjects (Transact-SQL)

2.syscolumns

为每个表和视图中的每列返回一行,并为数据库中的存储过程的每个参数返回一行。






























































































































列名 数据类型 说明

name

sysname

列名或过程参数的名称。

id

int

此列所属表的对象 ID,或者与此参数关联的存储过程的 ID。

xtype

tinyint

sys.types 中的物理存储类型。

typestat

tinyint

标识为仅供参考。不提供支持。不保证以后的兼容性。

xusertype

smallint

扩展的用户定义数据类型的 ID。如果数据类型的数字超过 32,767,则溢出或返回 NULL。有关详细信息,请参阅查询 SQL Server 系统目录

length

smallint

sys.types 中的最大物理存储长度。

xprec

tinyint

标识为仅供参考。不提供支持。不保证以后的兼容性。

xscale

tinyint

标识为仅供参考。不提供支持。不保证以后的兼容性。

colid

smallint

列 ID 或参数 ID。

xoffset

smallint

标识为仅供参考。不提供支持。不保证以后的兼容性。

bitpos

tinyint

标识为仅供参考。不提供支持。不保证以后的兼容性。

reserved

tinyint

标识为仅供参考。不提供支持。不保证以后的兼容性。

colstat

smallint

标识为仅供参考。不提供支持。不保证以后的兼容性。

cdefault

int

此列的默认值的 ID。

domain

int

此列的规则或 CHECK 约束的 ID。

number

smallint

过程分组时的子过程号。

0 = 非过程项

colorder

smallint

标识为仅供参考。不提供支持。不保证以后的兼容性。

autoval

varbinary(8000)

标识为仅供参考。不提供支持。不保证以后的兼容性。

offset

smallint

此列所在行的偏移量。

collationid

int

列的排序规则的 ID。对于非字符列,此值为 NULL。

status

tinyint

用于说明列或参数的属性的位图:

0x08 = 列允许空值。

0x10 = 添加 varcharvarbinary 列时,执行 ANSI 填充。保留 varchar 列的尾随空格以及 varbinary 列的尾随零。

0x40 = 参数为 OUTPUT 参数。

0x80 = 列为标识列。

type

tinyint

sys.types 中的物理存储类型。

usertype

smallint

sys.types 中的用户定义数据类型的 ID。如果数据类型数超过 32767,则会发生溢出或返回 NULL。有关详细信息,请参阅查询 SQL Server 系统目录

printfmt

varchar(255)

标识为仅供参考。不提供支持。不保证以后的兼容性。

prec

smallint

此列的精度级别。

-1 = xml 或大值类型。

scale

int

此列的小数位数。

NULL = 数据类型不是数值。

iscomputed

int

指示列是否为计算列的标志:

0 = 非计算列。

1 = 计算列。

isoutparam

int

指示过程参数是否为输出参数:

1 = True

0 = False

isnullable

int

指示列是否允许空值:

1 = True

0 = False

collation

sysname

列的排序规则的名称。如果不是基于字符的列,则为 NULL。

参考 sys.syscolumns (Transact-SQL)

删除某数据库内的表

declare dlist cursor for
 select   name   from   sysobjects   where xtype='U'
 open dlist
declare @n varchar(4000)
fetch next from dlist into @n
while @@fetch_status=0
 begin
        declare @es varchar(4000)
        set @es='DROP table  '+@n
         exec( @es)  
  fetch next from dlist into @n
 end
close dlist
DEALLOCATE dlist

(0)

相关推荐

  • 如何获取SqlServer2005表结构(字段,主键,外键,递增,描述)

    1.获取表的基本字段属性 复制代码 代码如下: --获取SqlServer中表结构 SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND syscolumns.id = object_id('你的表名') 运行效果 2.如果还想要获取字段的描述

  • sqlserver2005自动创建数据表和自动添加某个字段索引

    创建数据表的SQL语句如下: string tatlename = "T_useruid";//定义一个变量.用于自动创建数据表的名称,当前表名为:T_useruid string sql = "CREATE TABLE [dbo].[" + tatlename + "]([Cid] [int] IDENTITY(1,1) NOT NULL,[Uid] [nchar](32) COLLATE Chinese_PRC_CI_AS NULL,CONSTRAIN

  • SqlServer给表增加多个字段的语法

    添加字段语法 alter table table_name add column_name +字段类型+ 约束条件 给一个表增加多个字段: use NatureData go alter table XunHu add MaleCount varchar(50) null, FemaleCount varchar(50) null, SubadultCount varchar(50) null, LarvaeCount varchar(50) null, TraceType varchar(50

  • 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

  • MySql数据库之alter表的SQL语句集合

    mysql之alter表的SQL语句集合,包括增加.修改.删除字段,重命名表,添加.删除主键等. 1:删除列 ALTER TABLE [表名字] DROP [列名称] 2:增加列 ALTER TABLE [表名字] ADD [列名称] INT NOT NULL COMMENT '注释说明' 3:修改列的类型信息 ALTER TABLE [表名字] CHANGE [列名称][新列名称(这里可以用和原来列同名即可)] BIGINT NOT NULL COMMENT '注释说明' 4:重命名列 ALT

  • sqlserver数据库中的表、字段sql语句

    1.系统表sysobjects 在数据库中创建的每个对象(例如约束.默认值.日志.规则以及存储过程)都对应一行. 列名 数据类型 说明 name sysname 对象名 id int 对象标识号 xtype char(2) 对象类型.可以是以下对象类型之一: AF = 聚合函数 (CLR) C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 L = 日志 FN = 标量函数 FS = 程序集 (CLR) 标量函数 FT = 程序集 (CLR)

  • SQLServer中用T—SQL命令查询一个数据库中有哪些表的sql语句

    1.查询SQL中的所有表: Select TABLE_NAME FROM 数据库名称.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 执行之后,就可以看到数据库中所有属于自己建的表的名称 2.查询SQL中所有表及列: Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN d

  • 在MySQL数据库中使用C执行SQL语句的方法

    他们将讨论返回数据的语句,例如INSERT以及不返回数据的语句,例如UPDATE和DELETE.然后,他们将编写从数据库检索数据的简单程序 执行SQL语句 现在,我们已经有了一个连接,并且知道如何处理错误,是时候讨论使用我们的数据库来作一些实际工作了.执行所有类型的SQL的主关键字是mysql_query: int mysql_query(MYSQL *connection, const char *query) 正如您所见,它非常简单.它取一个指向连接结构的指针和包含要执行的SQL的文本字符串

  • 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') ----查询数据库中所有类型

  • Sql查询MySql数据库中的表名和描述表中字段(列)信息

    下面为大家介绍利用SQL查询语句获取Mysql数据库中表的表名,表描述.字段ID.字段名.数据类型.长度.精度.是否可以为null.默认值.是否自增.是否是主键.列描述 一.查询表信息(表名/表描述) SELECT table_name name,TABLE_COMMENT value FROM INFORMATION_SCHEMA.TABLES WHERE table_type='base table' and table_schema = '数据库名' order by table_name

  • 随机提取Access/SqlServer数据库中的10条记录的SQL语句

    代码如下:本文相关代码如下:Access:select top n * from table order by rnd(id)'id为数据库的自动编号字段Sql Server:select top n * from table order by newid() 但在ASP+Access中,或许是因为缓存的原因,第一条SQL语句无法得到预期的结果,而VB+Access则可以.解决办法是改用如下SQL语句: 本文相关代码如下:RandomizesSqlTxt="Select top 10 * Fro

  • 用SQL语句查询数据库中某一字段下相同值的记录方法

    今天接到一任务,有一张学生信息表(Excel表),里面有一万多条记录,现在要把这张表导入到数据库中,并设置学生学号为主键,但是现在这张表中的学生学号有重复的记录,我必须先找出这些重复的记录,然后再进行筛选,经过研究问题终于得到解决.      以上问题实际上就是查询数据库表中某一字段值重复的记录,这里省略如何将Excel表导入到数据库步骤,只讨论用SQL查询数据库中某一字段下相同值的记录方法. 现在假设数据库表名为student,里面有字段Sno(学号),ID(身份证),这里提供两种查询的方法:

  • SqlServer将数据库中的表复制到另一个数据库

    目录 SqlServer将数据库中的表复制到另一个数据库 一.如果两个数据库在同一台服务器上 二.如果两个数据库在不同的服务器上 复制表结构与数据的图文方法 复制表结构 表的数据内容复制图文方法 SqlServer将数据库中的表复制到另一个数据库 一.如果两个数据库在同一台服务器上 1.复制表结构和数据(A->B):SELECT * INTO DatabaseB.dbo.TableB FROM DatabaseA.dbo.TableA 2.仅仅复制表结构(A->B):SELECT * INTO

  • SQLServer用t-sql命令批量删除数据库中指定表(游标循环删除)

    当我们需要批量删除数据库中的表时,对于单个删除一些表是否感到烦躁,厌倦,干脆写个脚本用得了. 本脚本使用游标循环删除,对于数量比较小,用游标暂不会造成恶劣影响. 复制代码 代码如下: DECLARE @tablename VARCHAR(30),@sql VARCHAR(500)DECLARE cur_delete_table CURSOR READ_ONLY FORWARD_ONLY FORSELECT name FROM sysobjects WHERE name LIKE 'PUB%' A

随机推荐