文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>批量修改相同結構的table layout

批量修改相同結構的table layout

时间:2010-10-26  来源:人生无聊

  經過和總部的table layou相比之後發現,所有的table layout字段結構都沒有改變,這讓我很吃驚,也很佩服,說明當初設計table layou的人設計table的多么的完美,十幾年之後僅僅變化了一些字段的精度,比如:decimal(14,3),改為decimal(18,3),或者是默認值有些改變,所以我只需要修改精度和默認值就OK了。

  但是每個表都有幾十個相同結構的表啊,怎么辦?難道要我一個一個的修改表結構,這樣要做到猴年馬月啊!(PS:公司的財務系統總共有1000多個表),後來想了個偷懶的辦法:用遊標生成命令:直接print出來,然後執行print的語句,呵呵!如何儘快的比對公司和總部的兩table的layout呢?我將表的design試圖中的結構複製出來,貼到EXCEL中,字段名稱、類型、長度,一目了然,只需再加一個默認值,默認值就要自己到design視圖中去找一下了,至於是要修改精度呢,還是要修改默認值,按需索取,呵呵!

  語句如下:

 

代码  1 
 2 
 3 select   name   from   sysobjects   where   type='U' AND NAME LIKE 'ss82%' order by name 
 4 
 5 -----
 6 DECLARE @dbName NVARCHAR(128)
 7 DECLARE @qSql NVARCHAR(4000)
 8 DECLARE dbList CURSOR Local FOR            --建立遊標
 9 select   name   from   sysobjects   where   type='U' AND NAME LIKE 'ss82%' order by name 
10 for Read Only                                --禁止通過遊標更新
11 OPEN dbList
12 FETCH Next FROM dbList INTO @dbName
13 While (@@FETCH_STATUS <> -1)
14  BEGIN
15     set @qSql=''
16     --修改默認值
17     set @qSql='alter table '+@dbName+' drop constraint df_'+@dbName+'_amtd  '
18     SET @qSql=@qSql+'alter table '+@dbName+' add constraint df_'+@dbName+'_amtd'+' default (0) for amtd'
19     --修改表結構
20     --set @qSql=@qSql+' aLTER table '+@dbName+' aLTER cOLUMN amt2 decimal(18,3) '
21     --set @qSql=@qSql+' aLTER table '+@dbName+' aLTER cOLUMN qty decimal(18,3) '
22     --set @qSql=@qSql+' aLTER table '+@dbName+' aLTER cOLUMN amt1 decimal(18,3) '
23     --set @qSql=@qSql+' aLTER table '+@dbName+' aLTER cOLUMN amt0 decimal(18, 3) '
24     --set @qSql=@qSql+' aLTER table '+@dbName+' aLTER cOLUMN upri decimal(13, 6) '
25     PRINT @qSql
26     
27     FETCH NEXT FROM dbList INTO @dbName
28 END
29 close dbList
30 deallocate dbList
31 
32 --删除默认值
33  select   *   from   sysobjects   where   object_name(parent_obj)='SS83KM'   
34   --执行结果也可以得到表的默认值信息   
35  --------------------------------------------------------------------   
36  -- 确定默认值名称后,就可用   
37   alter   table   [表名]   drop   constraint   [默认值名]
38 
39 /***************************************************************************************/
40  --alter table LOGSS83SF drop constraint DF_LOGSS83SF_LOGDT  
41 ---
42 
43  select   *   from   sysobjects   where   object_name(parent_obj)='SS821F'   
44   alter   table   LOGSS83SF   drop   constraint   DF_LOGSS83SF_LOGDT
45   
46   
47   
  

 

 

相关阅读 更多 +
排行榜 更多 +
三角符文第一章下载

三角符文第一章下载

角色扮演 下载
嘀嘀动画官方正版下载

嘀嘀动画官方正版下载

趣味娱乐 下载
像素世界僵尸危机安卓版

像素世界僵尸危机安卓版

飞行射击 下载