Sql Server的一些语句

Sql Server的一些语句

一、   说明

当我们查询sql server数据库的时候,我们是否会看到有的查询语句是查询表“sysindexes”,而有的则是查询“sys.indexes”表。这两个表的说明如下:

u  Sysindexes表:是SQL Server2005以前的版本使用的存储索引的表。

u  sys.indexes表:是SQL Server2005(包含)以后中存储索引的表。

SQL Server2005对一些表结构的存储发生了变化,所以在使用的时候需要注意下。具体的对象关系可以查看下面的链接:

http://msdn.microsoft.com/en-us/library/ms187997.aspx

二、   SQL语句

1.  查询某个对象(表、索引等)在sysobjects中对应的Id

查询sysobjects表中是否存在“WCMID”表,如果存在则返回该对象Id,不存在则返回null

 
 select OBJECT_ID('WCMID'); 

语句等同于

 
 select id from sysobjects where name='WCMID' 

 

2.  查询某个Id在数据库中对应的名称

 
 select OBJECT_NAME(1838629593); 

语句等同于

 
 select name from sysobjects where id=1838629593 

 

3.  查询表Student表是否存在Age列,不存在则添加

 
 if not exists(SELECT * FROM SYSCOLUMNS WHERE name='Age' and id=OBJECT_ID('Student')) 

begin

    alter table Student  add Age int default 0 not null;

    update Student set Age=1  where RoleRange=1;

end

GO

 

 

4.  查看Student表上是否有名为“IX_NAME_AGE”索引

 

select * from sysindexes where name='IX_NAME_AGE' and id =OBJECT_ID('STUDENT');

5.  查询Student表中是否有“Age”列

 

select * from sys.columns where object_id=OBJECT_ID('STUDENT') and name='AGE'

 

6.  查询Student表上的“AGE”列是否存在索引

 

select * from sys.index_columns where object_id=OBJECT_ID('STUDENT') AND EXISTS(

  SELECT 1 FROM sys.columns where object_id=OBJECT_ID('STUDENT') and sys.index_columns.column_id=sys.columns.column_id and name='AGE'

);

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值