加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Sqlserver常用sql语句

发布时间:2020-12-12 12:49:14 所属栏目:MsSql教程 来源:网络整理
导读:1.Sqlserve的系统数据库是sys,其中一个很重要的表为sysobjects表(系统对象表),具体可以百度 2.通过sysobjects表我们可以获取某个数据库所有表名称: SELECT name FROM sys.sysobjects Where XType='U' 3.查找某个数据库非空数据表方法: --这个根据存储区

1.Sqlserve的系统数据库是sys,其中一个很重要的表为sysobjects表(系统对象表),具体可以百度

2.通过sysobjects表我们可以获取某个数据库所有表名称:

SELECT name FROM sys.sysobjects Where XType='U'

3.查找某个数据库非空数据表方法:

   --这个根据存储区来判断
     select  B.name   from sys.partitions A inner join sys.objects Bon A.object_id=B.object_id 
     where B.type='U' and  A.rows>0
   --这个根据索引表来判断
    select B.name  from sysindexes A inner join sys.objects Bon A.id=B.object_id  
    where B.type='U' And A.rows >0

4.查找某个字符串在哪张表的方法
declare   @str   varchar(100) 
  set   @str='缺省利率组别'     --要搜索的字符串  
   
  declare   @s   varchar(8000)  
  declare   tb   cursor   local   for  
  select   s='if   exists(select   1   from   ['+b.name+']   where   ['+a.name+']   like  ''%'+@str+'%'') 
  print   ''所在的表及字段:   ['+b.name+'].['+a.name+']'''  
  from   syscolumns   a   join   sysobjects   b   on   a.id=b.id  
  where   b.xtype='U'   and   a.status>=0  
     and   a.xusertype   in(175,239,231,167)  
  open   tb  
  fetch   next   from   tb   into   @s  
  while   @@fetch_status=0  
  begin  
  exec(@s)  
  fetch   next   from   tb   into   @s  
  end  
  close   tb  
  deallocate   tb
5.内连接、外连接、交叉连接

sql连接方式有:(inner)join(内连接)、left join(左连接)、right join( 右连接)、full join(全连接)、cross join(交叉连接)
其中left join(左连接)、right join( 右连接)、full join(全连接)属于外连接

inner join:列出双方共有的部分
left ?join:左边为主表全部显示,右边相等部分列出,不等部分用null表示
right join:右边为主表全部显示,左边相等部分列出,不等部分用null表示
full ?join:显示连个表的全部信息,不等的部分均用null表示
cross join:两个表的笛卡尔积

6.帮助语句

??1.查看表结构 sp_help? 2.查看生成视图的sql语句 sp_helptext
7sqlserver 中sql变量赋值有两种方法:set 和select ?1.set 返回空值,则变量被赋null ?2.select ?返回空值,则变量保持原值 ?? 3.select ?返回多值,保存最后一个 ?4.set ?不可用于返回多值
8查询某个字段在那张表
use db_name
select [name] from sysobjects where [id] in (select [id] from syscolumns where [name]='col_name') 
其中 db_name 是待查的数据库名称,col_name 是待查列名

9.查询某表 某列 的长度
if exists(select * from sysobjects where name = 'sp_helpcol')
    drop procedure sp_helpcol
go
create procedure sp_helpcol
   @table_name  varchar(255),@col_name    varchar(255)
as    
select 
   @table_name  =ISNULL(@table_name,''),@col_name    =ISNULL(@col_name,'') 
select name,[length] from syscolumns where id=object_id(@table_name)  and name=@col_name
</pre><pre name="code" class="sql">使用方式如下:
sp_helpcol 'loanrival','vc_rival_roles'




??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读