自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

說說數據庫批量更新維護

運維 數據庫運維
情況:多臺數據庫服務器,每臺服務器多個數據庫,數據庫結構一致(提供給不同客戶使用),那么要如何維護呢?看看筆者是怎么做的吧!

 情況:多臺數據庫服務器,每臺服務器多個數據庫,數據庫結構一致(提供給不同客戶使用)

一、手工操作

1、數據庫少

下拉列表選擇不同數據庫,執(zhí)行更新腳本sql.數據庫少,操作感覺不到麻煩。

2、數據庫多

下拉列表選擇不同數據庫,操作麻煩,容易遺漏更新數據庫。

SQL Server Management Studio這個下拉列表,還不支持拉大縮小,數據庫多了去選擇不同數據庫相當夠嗆。

二、半自動

思路:先更新一個數據庫(NEWNEW),比如更新了存儲過程AddSaleOrder和DeleteSaleOrder, 和執(zhí)行一段sql(DELETE FROM dbo.SystemConfig WHERE ConfigName='A'),然后通過sql參照這個數據庫更新同臺服務器的其他數據庫。

  1. USE [NEWNEW]  
  2. DECLARE @name SYSNAME  
  3. DECLARE userDB CURSOR FOR select name from master.dbo.sysdatabases WHERE SID <> 0x01  
  4. OPEN userDB  
  5. FETCH NEXT FROM userDB INTO @name 
  6. WHILE (@@FETCH_STATUS = 0)  
  7.    BEGIN 
  8.        EXEC('use [' + @name + '] IF (EXISTS(SELECT 1 FROM dbo.sysobjects o WHERE o.NAME = ''Customer'' AND o.xtype = ''U'')) BEGIN PRINT ''' + @name + ''' END')  
  9.        FETCH NEXT FROM userDB INTO @name 
  10.    END 
  11. CLOSE userDB  
  12. DEALLOCATE userDB 

假如輸出:

  1. DB1  
  2.  
  3. DB2  
  4.  
  5. DB3 

獲取一臺服務器上的所有自定義數據庫,select name from master.dbo.sysdatabases WHERE SID <> 0x01
通過游標再次再次過濾需要的自定義數據庫(一個特殊的對象,比如:Customer表)

生成批量更新數據庫的腳本:

  1. USE [NEWNEW]  
  2. DECLARE @objectID INT 
  3. DECLARE @objectName SYSNAME  
  4. DECLARE @ObjectType CHAR(2)  
  5. DECLARE @text VARCHAR(MAX)  
  6. DECLARE @dbName SYSNAME  
  7. DECLARE getName CURSOR SCROLL FOR select name from master.dbo.sysdatabases WHERE SID <> 0x01 AND NAME IN ('DB1' ,'DB2' ,'DB3')  
  8. OPEN getName  
  9. DECLARE getObj CURSOR FOR SELECT o.id, o.[name], o.xtype FROM dbo.sysobjects o WHERE o.NAME IN ('AddSaleOrder' ,'DeleteSaleOrder'AND o.xtype IN ('P''FN''V')  
  10. OPEN getObj  
  11. FETCH NEXT FROM  getObj INTO @objectID, @objectName, @ObjectType  
  12. WHILE (@@FETCH_STATUS = 0)  
  13.      BEGIN 
  14.           SET @text = '' 
  15.           SELECT @text = @text + s.[text] FROM dbo.syscomments s WHERE s.id = @objectID  
  16.           FETCH FIRST FROM getName INTO @dbName  
  17.           WHILE (@@FETCH_STATUS = 0)  
  18.                BEGIN 
  19.                    IF (@dbName = 'DB1')  
  20.                        USE [DB1]  
  21.                    ELSE IF (@dbName = 'DB2')  
  22.                        USE [DB2]  
  23.                    ELSE IF (@dbName = 'DB3')  
  24.                        USE [DB3]  
  25.                    IF (EXISTS(SELECT 1 FROM dbo.sysobjects o WHERE o.NAME = @objectName AND o.xtype = @ObjectType))  
  26.                        BEGIN 
  27.                          IF (@ObjectType = 'P')  
  28.                             EXEC ('DROP PROCEDURE dbo.' + @objectName)  
  29.                          ELSE IF(@ObjectType = 'V')  
  30.                             EXEC ('DROP VIEW dbo.' + @objectName)  
  31.                          ELSE IF(@ObjectType = 'FN')  
  32.                             EXEC ('DROP FUNCTION dbo.' + @objectName)  
  33.                        END 
  34.                    EXEC (@text)  
  35.                    EXEC ('DELETE FROM dbo.SystemConfig WHERE ConfigName=''A''')  
  36.                    USE [NEWNEW]  
  37.                    FETCH NEXT FROM getName INTO @dbName  
  38.                END 
  39.           FETCH NEXT FROM getObj INTO @objectID, @objectName, @ObjectType  
  40.      END 
  41. CLOSE getObj  
  42. DEALLOCATE getObj  
  43. CLOSE getName  
  44. DEALLOCATE getName 

dbo.syscomments存儲的存儲過程腳本,如果腳本字符超過4000字符,會多行存儲。@text = @text + s.[text]累加得到腳本,沒個對象更新時SET @text = '',清除

輔助winform:

 

源代碼下載:http://files.cnblogs.com/yinyunpan/WangshijieTool.rar

3、自動

向大家請教了。。。

原文鏈接:http://www.cnblogs.com/yinyunpan/archive/2011/05/26/2057945.html

【編輯推薦】

  1. Mongodb源碼分析--內存文件映射(MMAP)
  2. 走進MongoDB的世界 展開MongoDB的學習之旅
  3. 淺析Mongodb源碼之游標Cursor
  4. 野心勃勃的NoSQL新貴 MongoDB應用實戰(zhàn)
  5. Mongodb源碼分析之Mongos分析
責任編輯:艾婧 來源: 博客園
相關推薦

2011-03-24 16:38:00

Exchange數據庫維護

2018-08-09 08:59:56

數據庫MySQL性能優(yōu)化

2011-03-31 14:14:37

SQL Server 數據庫批量更新

2011-05-25 09:20:24

Oracle數據庫

2010-11-29 11:51:59

Sybase數據庫維護

2010-06-03 09:49:13

2011-06-14 15:11:59

ORACLE

2022-12-23 07:48:23

多數據庫Citus集群

2009-06-18 16:29:00

牛新莊數據庫

2009-02-03 13:06:17

日常維護規(guī)范MySQL

2011-08-04 18:00:47

SQLite數據庫批量數據

2009-03-19 10:08:09

C#數據庫查詢

2024-09-20 07:38:00

數據庫性能策略

2009-01-07 09:46:18

InformixOnline數據庫

2011-03-28 15:28:03

SQL Server 數據庫

2014-02-14 09:28:55

數據中心日常維護

2010-05-12 15:26:05

MySQL數據庫日志

2011-08-18 16:42:04

Oracle數據庫維護SQL代碼示例

2010-07-09 11:28:12

SQL Server數

2009-04-24 09:15:50

Oracle維護前瞻性
點贊
收藏

51CTO技術棧公眾號