哈爾濱海月數據恢復,技術亞洲領先 設為首頁加入收藏RSS訂閱
中國區:哈爾濱(總部)、鄭州福建深圳、沈陽合肥大連、包頭淄博上海廣州、
    南京、杭州、嘉興、武漢、濟南青島、新疆、太原
亞太區:印度韓國泰國、新加坡、馬來西亞澳大利亞
Windows
SQL SERVER日志******的兩種方法

  SQL SERVER日志清除的兩種方法

  在使用過程中大家經常碰到數據庫日志非常大的情況,在這里介紹了兩種處理方法……

  方法一

  一般情況下,SQL數據庫的收縮并不能很大程度上減小數據庫大小,其主要作用是收縮日志大小,應當定期進行此操作以免數據庫日志過大

  1、設置數據庫模式為簡單模式:打開SQL企業管理器,在控制臺根目錄中依次點開Microsoft SQL Server-->SQL Server組-->雙擊打開你的服務器-->雙擊打開數據庫目錄-->選擇你的數據庫名稱(如論壇數據庫Forum)-->然后點擊右鍵選擇屬性-->選擇選項-->在故障還原的模式中選擇“簡單”,然后按確定保存。

  2、在當前數據庫上點右鍵,看所有任務中的收縮數據庫,一般里面的默認設置不用調整,直接點確定。

  3、收縮數據庫完成后,建議將您的數據庫屬性重新設置為標準模式,操作方法同******點,因為日志在一些異常情況下往往是恢復數據庫的重要依據

  方法二

  SET NOCOUNT ON

  DECLARE @LogicalFileName sysname,

  @MaxMinutes INT,

  @NewSize INT

  USE   tablename       -- 要操作的數據庫名

  SELECT @LogicalFileName = 'tablename_log', -- 日志文件名

  @MaxMinutes = 10,        -- Limit on time allowed to wrap log.

  @NewSize = 1         -- 你想設定的日志文件的大小(M)

  -- Setup / initialize

  DECLARE @OriginalSize int

  SELECT @OriginalSize = size

  FROM sysfiles

  WHERE name = @LogicalFileName

  SELECT 'Original Size of ' + db_name() + ' LOG is ' +

  CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +

  CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'

  FROM sysfiles

  WHERE name = @LogicalFileName

  CREATE TABLE DummyTrans

  (DummyColumn char (8000) not null)

  DECLARE @Counter  INT,

  @StartTime DATETIME,

  @TruncLog VARCHAR(255)

  SELECT @StartTime = GETDATE(),

  @TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'

  DBCC SHRINKFILE (@LogicalFileName, @NewSize)

  EXEC (@TruncLog)

  -- Wrap the log if necessary.

  WHILE   @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired

  AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)

  AND (@OriginalSize * 8 /1024) > @NewSize

  BEGIN -- Outer loop.

  SELECT @Counter = 0

  WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))

  BEGIN -- update

  INSERT DummyTrans VALUES ('Fill Log')

  DELETE DummyTrans

  SELECT @Counter = @Counter + 1

  END

  EXEC (@TruncLog)

  END

  SELECT 'Final Size of ' + db_name() + ' LOG is ' +

  CONVERT(VARCHAR(30),size) + ' 8K pages or ' +

  CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'

  FROM sysfiles

  WHERE name = @LogicalFileName

  DROP TABLE DummyTrans

  SET NOCOUNT OFF

  刪除數據庫中重復數據的幾個方法

  數據庫的使用過程中由于程序方面的問題有時候會碰到重復數據,重復數據導致了數據庫部分設置不能正確設置……

  方法一

  declare @max integer,@id integer

  declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1

  open cur_rows

  fetch cur_rows into @id,@max

  while @@fetch_status=0

  begin

  select @max = @max -1

  set rowcount @max

  delete from 表名 where 主字段 = @id

  fetch cur_rows into @id,@max

  end

  close cur_rows

  set rowcount 0

  方法二

  有兩個意義上的重復記錄,一是完全重復的記錄,也即所有字段均重復的記錄,二是部分關鍵字段重復的記錄,比如Name字段重復,而其他字段不一定重復或都重復可以忽略。

  1、對于******種重復,比較容易解決,使用

  select distinct * from tableName

  就可以得到無重復記錄的結果集。

  如果該表需要刪除重復的記錄(重復記錄保留1條),可以按以下方法刪除

  select distinct * into #Tmp from tableName

  drop table tableName

  select * into tableName from #Tmp

  drop table #Tmp

  發生這種重復的原因是表設計不周產生的,增加******索引列即可解決。

  2、這類重復問題通常要求保留重復記錄中的******條記錄,操作方法如下

  假設有重復的字段為Name,Address,要求得到這兩個字段******的結果集

  select identity(int,1,1) as autoID, * into #Tmp from tableName

  select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID

  select * from #Tmp where autoID in(select autoID from #tmp2)

  ***后一個select即得到了Name,Address不重復的結果集(但多了一個autoID字段,實際寫時可以寫在select子句中省去此列)

  更改數據庫中表的所屬用戶的兩個方法

  大家可能會經常碰到一個數據庫備份還原到另外一臺機器結果導致所有的表都不能打開了,原因是建表的時候采用了當時的數據庫用戶……

  --更改某個表

  exec sp_changeobjectowner 'tablename','dbo'

  --存儲更改全部表

  CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch

  @OldOwner as NVARCHAR(128),

  @NewOwner as NVARCHAR(128)

  AS

  DECLARE @Name  as NVARCHAR(128)

  DECLARE @Owner as NVARCHAR(128)

  DECLARE @OwnerName as NVARCHAR(128)

  DECLARE curObject CURSOR FOR

  select 'Name'  = name,

  'Owner'  = user_name(uid)

  from sysobjects

  where user_name(uid)=@OldOwner

  order by name

  OPEN curObject

  FETCH NEXT FROM curObject INTO @Name, @Owner

  WHILE(@@FETCH_STATUS=0)

  BEGIN

  if @Owner=@OldOwner

  begin

  set @OwnerName = @OldOwner + '.' + rtrim(@Name)

  exec sp_changeobjectowner @OwnerName, @NewOwner

  end

  -- select @name,@NewOwner,@OldOwner

  FETCH NEXT FROM curObject INTO @Name, @Owner

  END

  close curObject

  deallocate curObject

  GO

  SQL SERVER中直接循環寫入數據

  沒什么好說的了,大家自己看,有時候有點用處

  declare @i int

  set @i=1

  while @i<30

  begin

  insert into test (userid) values(@i)

  set @i=@i+1

  end

  收藏此頁到 IE收藏夾 POCO網摘 [365Key] [ViVi] 百度藏搜 和訊網摘 向您的朋友推薦此文章 發送文章到手機

  轉載請注明來源:文章大全 網址:http://www.itlearner.com/article/

  文章關鍵詞:mssql 置疑 恢復

  如意搜索搜索更多內容:SQL SERVER日志******的兩種方法

  特別聲明: 本站除部分特別聲明禁止轉載的專稿外的其他文章可以自由轉載,但請務必注明出處和原始作者。文章版權歸文章原始作者所有。對于被本站轉載文章的個人和網站,我們表示深深的謝意。如果本站轉載的文章有版權問題請聯系我們,我們會盡快予以更正。

 
客戶服務 +more
上門服務
服務承諾
異地恢復
收費標準
付款方式
疑難解答
服務特色 +more
·免費檢測
·免費提供3天備份
·專業工程師提供服務
·免費清潔送修的介質
·數據恢復前報價,客戶確認后工程師開始數據恢復
·數據恢復不成功不收費
·與客戶簽訂保密協議,對客戶的數
 據嚴格保密,整個恢復過程不會對
 客戶的原盤有任何的寫操作,以確
 保原盤的數據完全

·免費參觀恢復全過程

·工程師在線免費咨詢

·專業工程師提供服務
服務器數據恢復 點擊這里給我發消

息
數據庫修復
點擊這里給我發

消息
硬盤數據恢復
點擊這里給我發消

息
51La 主站蜘蛛池模板: 免费人妻精品一区二区三区| 精品国产一区二区三区久久| 久久精品国产亚洲一区二区三区| 蜜桃臀无码内射一区二区三区| 久久综合精品国产一区二区三区| 夜精品a一区二区三区| 久久久91精品国产一区二区三区| 在线观看日韩一区| 亚洲日韩国产一区二区三区在线 | 亚洲视频一区在线观看| 人妻少妇AV无码一区二区| 国产成人精品久久一区二区三区av | 成人国内精品久久久久一区| 日本一区二区三区中文字幕| 日韩在线观看一区二区三区| 国模无码视频一区| 国产综合精品一区二区| 国产一区二区三区樱花动漫| 国产在线观看一区二区三区 | av无码人妻一区二区三区牛牛| 日韩A无码AV一区二区三区| 精品一区二区三区在线观看l| 国产一区二区免费| 综合久久一区二区三区| 国产一区二区精品久久| 91久久精品一区二区| 精品福利一区二区三区免费视频| 99精品国产高清一区二区麻豆| 亚洲欧美一区二区三区日产| 日韩一区二区三区不卡视频| 日韩熟女精品一区二区三区| 香蕉免费看一区二区三区| 亚洲色婷婷一区二区三区| 色一乱一伦一图一区二区精品| 亚洲一区二区三区免费在线观看| 中文激情在线一区二区| 精品视频一区二区| 国产内射999视频一区| 呦系列视频一区二区三区| 日本精品一区二区三区在线视频一| av无码一区二区三区|