您的位置:澳门新葡8455最新网站 > 数据库管理 > 批量剔除全部存款和储蓄进度的诀要分享,系统

批量剔除全部存款和储蓄进度的诀要分享,系统

发布时间:2019-10-05 16:07编辑:数据库管理浏览(170)

    转自:http://www.maomao365.com/?p=6864

    转自: http://www.maomao365.com/?p=5277
    摘要:
    下文主要讲述,如何对"已上线的系统"中的表,增加新的字段。

    摘要:


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

    系统部署脚本,增加列的方法:
    在系统脚本发布中,如何是存储过程 自定义函数 视图的修改和新增,我们通常采用以下步骤来编写此类脚本
    1 判断对象(存储过程 自定义函数 视图)是否存在,如何存在我们就删除对象(存储过程 自定义函数 视图)
    2 新建对象
    <hr />
    但是增加系统字段(列)时,我们不能采用删除表,然后重新的方式进行脚本处理,
    那么我们通常采用 先判断列是否存在,如果不存在就创建列,如果存在就修改列属性<span style="color:red;font-weight:bold;">(修改列属性--请注意是否会影响历史数据)</span>
    例:


    IF NOT EXISTS(SELECT * FROM SYS.COLUMNS 
    WHERE OBJECT_ID = OBJECT_ID(N'表名') 
    AND NAME = '列名') ---判断列是否存在
    begin
    ---增加列
    alter table [表名] 
    add column [列名] [列类型]
    end
    else
    begin
    ---修改列属性
    alter table [表名] 
    add column [列名] [列类型]
    end
    

    平常使用sql脚本,删除存储过程,我们只可以使用删除命令一条一条的删除存储过程,下文介绍一种简便方法,可以对系统中所有的存储过程进行删除,
    <span style="color:red;">
    实现思路:
    1 采用临时表将存储过程名称缓存
    2 通过循环临时表,输出删除存储过程脚本
    3 执行脚本

    采用以上方式编写sql部署脚本的优点为,sql脚本可以执行多次,不会出现报错信息,可以避免已经手动增加列的数据库产生部署错误提示信息

    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
    

    * *

     

    本文由澳门新葡8455最新网站发布于数据库管理,转载请注明出处:批量剔除全部存款和储蓄进度的诀要分享,系统

    关键词:

上一篇:没有了

下一篇:没有了