删除存储过程,如何对"已上线的系统"中的表

下文呈报选择sql脚本批量删减全数存款和储蓄进程的点子,如下所示:
实行意况:sqlserver 二零零六 福睿斯2

动用上述措施编写sql安顿脚本的长处为,sql脚本能够实行多次,不会油不过生报错消息,能够制止已经手动扩张列的数据库爆发布置错误提醒新闻

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

转自: http://www.maomao365.com/?p=5277
摘要:
下文首要描述,怎样对"已上线的系统"中的表,扩大新的字段。


系统布局脚本,增加列的格局:
在系统脚本发布中,如何是储存进度 自定义函数 视图的修改和新扩大,大家常见采用以下步骤来编排此类脚本
1 决断指标(存款和储蓄进度 自定义函数 视图)是还是不是存在,如何存在我们就删除对象(存款和储蓄进程 自定义函数 视图)
2 新建对象
<hr />
可是扩张系统字段(列)时,我们无法动用删除表,然后再次的秘技张开脚本管理,
那么我们通常使用 先判定列是或不是留存,假如不设有就成立列,如若存在就修改列属性<span style="color:red;font-weight:bold;">(修改列属性--请小心是或不是会影响历史数据)</span>
例:

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
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 试行脚本


摘要:

* *

 

本文由2138acom太阳集团app发布于网络动态,转载请注明出处:删除存储过程,如何对"已上线的系统"中的表

相关阅读