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


  本文标签:表字段,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 。

ms177596.note(zh-cn,SQL.105).gif重要提示:
如果使用以下任何一个 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