syscolumns OBJECT_ID 数据库验证字段表名

来源:互联网 发布:淘宝 银联在线支付 编辑:程序博客网 时间:2024/05/17 22:30

当前数据库的所有字段都保留在syscolumns里面。

syscolumns (

  name     sysname,   --字段名称

  id       int,        --该字段所属的表的ID

  xtype    tinyInt,    --该字段类型,关联sysTypes表

  length   smallint,   --该字段物理存储长度

  ...

)

使用方法是:

Select name from syscolumns Where ID=OBJECT_ID('表名')

或者做为一个判断的条件:

Select 1 from syscolumns Where ID=OBJECT_ID('表名') and name='(列名)'。

我的实例:(为stu表添加一个stu_nm字段)

if exists(select 1 from syscolumns where id=object_id('stu') and name='stu_nm')

   alter table stu alter column stu_nm int null

else

   alter table stu add stu_nm int null

go

以上程序在运行多次也不会出现系统错误,所以在发布使用时特别的方便。

另有:

 ncsyscolumns:包括id、name、number

 syscolumns:包括id、colid、number

select   *   from   yourdb.INFORMATION_SCHEMA.KEY_COLUMN_USAGE   

 

  KEY_COLUMN_USAGE的结构   

 

  列名   数据类型   描述     

  CONSTRAINT_CATALOG   nvarchar(128)   约束限定符     

  CONSTRAINT_SCHEMA   nvarchar(128)   约束所有者名称     

  CONSTRAINT_NAME   nvarchar(128)   约束名     

  TABLE_CATALOG   nvarchar(128)   表限定符     

  TABLE_SCHEMA   nvarchar(128)   表所有者名称     

  TABLE_NAME   nvarchar(128)   表名     

  COLUMN_NAME   nvarchar(128)   列名     

  ORDINAL_POSITION   int   列顺序位置     

 

  sysconstraints也是系统表。   

  结构   

 

  列名   数据类型   描述     

  constid   int   约束号。     

  id   int   拥有该约束的表   ID。     

  colid   smallint   在其上定义约束的列   ID,如果是表约束则为   0。     

  spare1   tinyint   保留。     

  status   int   位图指示状态。可能的值包括:     

              1   =   PRIMARY   KEY   约束。   

              2   =   UNIQUE   KEY   约束。   

              3   =   FOREIGN   KEY   约束。   

              4   =   CHECK   约束。     

              5   =   DEFAULT   约束。   

              16   =   列级约束。   

              32   =   表级约束。     

  actions   int   保留。     

  error   int   保留。