sql中如何查询数据库表等信息

 

1.查询数据库中的表是否存在:

sql语句:

select   count(1)   from   sysobjects   where object_name(id)='表名'

 

或:

select count(*) from sysobjects where id = object_id(N'[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1

 

存储过程:

IF Exists(Select 1 From sysObjects Where Name ='表名' And Type In ('S','U'))
  Print 'Exists Table'
Else
  Print 'Not Exists Table'

 

转:

第一种方法:判断系统对象是否存在

DECLARE
  @DbTableFileName VARCHAR(100)

 

SET @DbTableFileName = 'tx'

IF objectproperty(object_id(@DbTableFileName),'IsUserTable') IS NOT NULL
  PRINT 'EXISTS '
 ELSE
  PRINT 'NOT EXISTS '

IF object_id(@DbTableFileName) IS NOT NULL
  PRINT 'EXISTS '
 ELSE
  PRINT 'NOT EXISTS '

IF EXISTS (SELECT Object_id(@DbTableFileName))
  PRINT 'EXISTS '
 ELSE
  PRINT 'NOT EXISTS '

 

第二种方法:通过查询系统表

 

DECLARE
  
@DbTableFileName VARCHAR(100)

SET @DbTableFileName = 'tx'

 
IF EXISTS (SELECT 1
           
FROM   sysobjects
           
WHERE  name = @DbTableFileName
                  
AND TYPE = 'u')
  
PRINT 'EXISTS '
 
ELSE
  
PRINT 'NOT EXISTS '

 

注:a 是一个表,U代表是数据表类型

类似于U的类型代码,如下所示

对象类型:

AF = 聚合函数 (CLR)

C = CHECK 约束

D = DEFAULT(约束或独立)

F = FOREIGN KEY 约束

PK = PRIMARY KEY 约束

P = SQL 存储过程

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

FN = SQL 标量函数

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

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

R = 规则(旧式,独立)

RF = 复制筛选过程

SN = 同义词

SQ = 服务队列

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

TR = SQL DML 触发器

IF = SQL 内联表值函数

TF = SQL 表值函数

U = 表(用户定义类型)

UQ = UNIQUE 约束

V = 视图

X = 扩展存储过程

IT = 内部表

 

 2.查询表中的列是否存在

 

select count(1) from syscolumns where [id]=object_id(表名) and [name]='列名'

 

省略......

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值