伟德betvictot手机版简单数据库同步脚本,批量删除所有存储过程的方法分享

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

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

Oracle 数据水库蓄水体积易同盟

伟德betvictot手机版,摘要:


 

下文汇报选择sql脚本批量剔除全数存储进程的办法,如下所示:
试市价况:sqlserver
二零零六 Tucson2

系统铺排脚本,扩充列的艺术:
在系统脚本公布中,如何是储存进程 自定义函数
视图的退换和新扩充,大家常见使用以下步骤来编排此类脚本
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
  1. 不保证实时性,只是透过job的艺术准时同步
  2. 只同步表中的数目,不保留其余数据
  3. 在用脚本开端化后,不能够再扩大表或删除表,或改换表结果,假诺发生则供给再行早先化表。
  4. 在伊始化的时候,最棒把数据库改为非归档格局,不然会时有发生多量的存档日志,借使归档

平凡使用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

* *

方式:

 

  1. 运用数据链的秘技将数据从源复制到备份库。
  2. 采用触发器追踪表中数量的成形,包括insert,update,delete
  3. 采纳job的法子准时同步

 

步骤:

  1. 在源数据库中按顺序施行八个剧本:s1.source_create_sync-trigger.sql,s2.source_sync_update_sync_id.sql,s3.source_init.sql.
  2. 在备份库上创设数据库链连接到源库,数据库链名称为remote
  3. 在备份库上按顺序实施八个剧本:d1.destination_sync_table_data.sql,d2.destination_sync_all_data.sql,d3.destination_inin_tables.sql.
  4. 调用存款和储蓄进度sync_all_data就能够风度翩翩并数据

下载文件:backscript.rar

发表评论