目前分類:SQL (13)

瀏覽方式: 標題列表 簡短摘要

簡單的指令,卻常常有人需要找他 ^^...
 

DBCC CHECKIDENT('dbo.table_name', RESEED, 0)



文章標籤

藍色小惡魔 發表在 痞客邦 留言(0) 人氣()

其實有比較簡短的語法 就是 SQL 內定的 SP laughing 寶寶知道 但是寶寶先不說

又臭又長的 只要把有中文說明的部份改成你要的對象

P.S. 完整內容及持續更新版本請連結至原文查看:http://www.imp.idv.tw/play/forum/viewthread?thread=990

SET NOCOUNT ON 
DECLARE @LogicalFileName sysname, @MaxMinutes INT, @NewSize INT 

USE {DBName ex HRMS} -- 要操作的資料庫名 
SELECT 
  @LogicalFileName = '{Log file name ex HRMS_Log}', -- 日誌文件名 
  @MaxMinutes = 10, -- Limit on time allowed to wrap log. (M)
  @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

引用自:藍色小惡魔MS SQL 清除 LOG 並縮減空間的語法
http://www.imp.idv.tw/play/forum/viewthread?thread=990

事隔這麼久... 我現在來公佈那個簡短的語法 但是請注意這個語法的缺點!!!

DUMP TRANSACTION DBName WITH NO_LOG

為什麼我不一開始就推薦這個語法勒...

因為這個內建的方法他不會重新設定 LOG 檔的初始大小

請注意我原本的語法中 〝@NewSize = 1 -- 你想設定的日誌文件的大小(M)

很多時候我們剛接手別人的系統,發現磁碟空間老是爆滿,第一手段就是控制 LOG 的成長。

然而如果你只會這個簡單的語法,如果不是很了解原理也許一開始你會猛按卻沒有效果,因為很多偷懶或不懂的資料庫設計者,就是愛把 LOG 開個幾百幾千妹的,很討厭......

但是去問他會不會解 LOG 抓賊啊?只有無言的答案!

而上面提到的簡短語法他只會把 LOG 清除,然後呢?該DB 的 LOG 檔就會強佔他被設定的初始空間。

舉例你會看到一個 LOG 檔有 2 G,其實他幾百年都是 2 G,你以為他用到 2 G 了所以用力清卻沒用。

使用了我樂樂長的可重設初始空間的語法後,你才發現該資料庫這輩子根本用不到 200 M。

廢話好多... 就是要告訴各位一件事情,萬事都別偷懶,最難的和最簡單的都要學,交叉使用才能讓你的系統設計達到藝術的完美境界! laughing

引用自:藍色小惡魔MS SQL 清除 LOG 並縮減空間的語法
http://www.imp.idv.tw/play/forum/viewthread?thread=990



文章標籤

藍色小惡魔 發表在 痞客邦 留言(0) 人氣()

以下是我整理過去工作經驗較常用的格式,簡化記憶和尋找,並非每個資料庫僅提供這些格式而已...就當作是工具收藏到書籤內,挺好用的!

  • MS SQL
    小惡魔系統設計慣性用法
文章標籤

藍色小惡魔 發表在 痞客邦 留言(0) 人氣()

這種 以己之矛攻己之盾的方法 真的是很高招,目前小惡魔網站應該還沒有被盯上的價值,不過先留下武功秘笈以備不時之需。

重點說明
 

文章標籤

藍色小惡魔 發表在 痞客邦 留言(0) 人氣()


drop table ICMS30Bak.dbo.JobBak_V2_繳款記錄
select * into ICMS30Bak.dbo.JobBak_V2_繳款記錄 from confer.dbo.V2_繳款記錄

文章標籤

藍色小惡魔 發表在 痞客邦 留言(0) 人氣()


declare @vSQL1 nvarchar(1000), @vSQL2 nvarchar(500), @ColumnName varchar(50), @RunDate datetime

-- 取得 Table 中以年月設計的欄位最大值 (考慮未來維護的人只知道增加欄位而未修改程式)
文章標籤

藍色小惡魔 發表在 痞客邦 留言(0) 人氣()

 
declare @vSQL nvarchar(500), @ColumnName varchar(50), @RunDate datetime, @DateStr char(8)

set @RunDate = '2007-12-25'
文章標籤

藍色小惡魔 發表在 痞客邦 留言(0) 人氣()

今天實在對本公司為了讓 User 直接強姦資料庫而用 Excel 白痴法開的 Table
造成本人懶得寫程式 而接手過來貼得拉拉長的 SQL 很不爽
直接上討論區只能用 "欄位" 兩個字當關鍵字 (不得以的 其他太直接的關鍵字找不到文章)

文章標籤

藍色小惡魔 發表在 痞客邦 留言(0) 人氣()

剛剛有個 pig 寫了個補 0 的 SQL 問我怎麼寫不出來

主要當然是他沒把數字轉字串所以 SQL 很雞婆會自動轉回數字

文章標籤

藍色小惡魔 發表在 痞客邦 留言(0) 人氣()

MS SQL 教學 

MIS 或 DBA 經常會設計定時抓取資料的 Schedule SQL Job,但因為上游資料來源(或程式)延遲或失敗,過了 Job 執行時間也許才差幾秒幾分鐘或可容許的延遲時間內來源資料變已產生完畢了,可是定時抓取的 SQL Job 早已停工,此時 User 來上工了發現系統有問題通知 MIS 處理,這時也只能癡癡地等上游資料跑完後,MIS 再手動執行 SQL JOB... 或者更慘的是,假日被急摳來處理...!!

MIS 轄下受連累的系統因為資料不夠新鮮以致使用單位無法作業,只好吃下問題單 ="=... 接著安排人跟催上遊甚麼時候補好資料庫。

文章標籤

藍色小惡魔 發表在 痞客邦 留言(0) 人氣()

關鍵語法就是 backup database [@db_name] to disk = '@path_filename'
而以下範例我將檔明訂為 資料庫名稱 + 時間戳記 (yyyymmddhhmuss),檔名原則就看自己怎麼湊囉~~

文章標籤

藍色小惡魔 發表在 痞客邦 留言(0) 人氣()

這是一篇由 國家資通安全會報 技術中心 游啟勝 於 2004/6/21 撰寫的文章,從網路論壇上分享到的,好文章分享給給每個在 MIS 領域奮戰的朋友!

2004_07_windows_patch_management.pdf 

文章標籤

藍色小惡魔 發表在 痞客邦 留言(0) 人氣()

MySQL
select dayofweek(now())
1=星期天 ... 7=星期六 看不順眼自己倒減囉~

文章標籤

藍色小惡魔 發表在 痞客邦 留言(0) 人氣()