日度归档:2018年7月14日

mssql sqlserver 批量删除所有存储过程的方法分享


摘要:
下文讲述采用sql脚本批量删除所有存储过程的方法,如下所示:
实验环境:sqlserver 2008 R2


平常使用sql脚本,删除存储过程,我们只可以使用删除命令一条一条的删除存储过程,下文介绍一种简便方法,可以对系统中所有的存储过程进行删除,

实现思路:
1 采用临时表将存储过程名称缓存
2 通过循环临时表,输出删除存储过程脚本
3 执行脚本

 declare @t table(keyId int identity(1,1),tableName varchar(256))
  ----生成临时表
 insert into @t(tableName) 
 select [name] from sysobjects where type='P'
 
  declare @i int @iMax int ,@info varchar(256)
set @i  =1 
select @imax=max(keyId) from @t as t 

while @i <@imax
begin
  select @info = t.tableName from @t as t where t.keyId =@i
  
  if  @info is not null 
  begin
  exec ('drop proc '+@info)   ---遍历删除存储过程
 end 
 
  set @i  = @i+1 
  set @info =null 
end 

mssql sqlserver 使用sql脚本一次删除多个字段的方法分享


摘要:
下文讲述使用一条sql脚本,删除多个字段(删除多列的方法分享),如下所示:
实验环境:sqlserver 2008 R2


在日常的表维护中,我们会涉及对表列的删除操作,下文将展示通过一条sql脚本删除两列的方法分享,
一次删除表多列的语法:
alter table [表名]
drop column [列名1],column [列名2],…

 -- 例: 删除表"test"中列A,B,C,D
   alter table [test]
   drop column [A],column [B],column [C],column [D] 

mssql sqlserver 对一张表生成流水号的方法分享


摘要:
下文讲述将一张无流水号的表,生成自动行流水号的方法分享
实验环境:sqlserver 2008 R2


实现思路:
采用开窗函数over row_number实现表自动流水号

  select row_number() over(order by [排序列] desc ) as [表自动流水号]  from [表名]