成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

說說數據庫批量更新維護

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

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

一、手工操作

1、數據庫少

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

2、數據庫多

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

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

二、半自動

思路:先更新一個數據庫(NEWNEW),比如更新了存儲過程AddSaleOrder和DeleteSaleOrder, 和執行一段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應用實戰
  5. Mongodb源碼分析之Mongos分析
責任編輯:艾婧 來源: 博客園
相關推薦

2011-03-24 16:38:00

Exchange數據庫維護

2011-05-25 09:20:24

Oracle數據庫

2010-11-29 11:51:59

Sybase數據庫維護

2018-08-09 08:59:56

數據庫MySQL性能優化

2010-06-03 09:49:13

2011-03-31 14:14:37

SQL Server 數據庫批量更新

2009-06-18 16:29:00

牛新莊數據庫

2009-02-03 13:06:17

日常維護規范MySQL

2011-06-14 15:11:59

ORACLE

2022-12-23 07:48:23

多數據庫Citus集群

2011-08-04 18:00:47

SQLite數據庫批量數據

2024-09-20 07:38:00

數據庫性能策略

2009-03-19 10:08:09

C#數據庫查詢

2011-03-28 15:28:03

SQL Server 數據庫

2009-01-07 09:46:18

InformixOnline數據庫

2014-02-14 09:28:55

數據中心日常維護

2010-07-09 11:28:12

SQL Server數

2009-04-24 09:15:50

Oracle維護前瞻性

2009-02-02 17:21:58

日志文件維護MySQL日志文件

2009-12-25 17:05:32

ADO.NET數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩电影一区 | 中文字幕亚洲在线 | 亚洲精品一区二区网址 | 伊人久久综合 | 精品视频一区二区三区 | 国产95在线 | 亚洲一区精品在线 | 国产精品亚洲一区二区三区在线 | 成人亚洲精品久久久久软件 | 国产精品久久一区二区三区 | 久久久久久国产精品 | 欧美日韩视频 | 久久99国产精品 | www在线视频 | 国产欧美久久一区二区三区 | 欧美二区在线 | 久久久女女女女999久久 | 日韩av免费看 | 蜜桃官网 | 中文字幕在线第一页 | 久久中文字幕电影 | 在线伊人网 | 国产成人综合av | 91视频日本 | 成人午夜免费福利视频 | 国产黄色精品在线观看 | 欧美成人精品欧美一级 | 日本黄色大片免费 | 欧美日韩综合精品 | 日韩欧美在线一区二区 | 天天射夜夜操 | 久久精品国产一区二区电影 | 在线国产一区二区 | 中文字幕一区二区在线观看 | cao在线| 毛片视频网址 | 国产精品一区二区三区99 | 拍真实国产伦偷精品 | 国产精品99久久久久久宅男 | 国产精品久久久久久久久久久久 | 视频二区|