Posts
83
Comments
600
Trackbacks
40
December 2004 Entries
Real World SQL Server Disaster Recovery

Just got an email from http://www.sql-server-performance.com/default.asp

And they had a great link to an article from Brian Knight that discusses Disaster recovery and is “A Survival Toolkit for the DBA“.  It even comes with a bunch of scripts already written.  I always liked reading Brian's stuff, and he continues his engaging style in this document.

AND, I did not know that Brian was a co-founder of http://www.sqlservercentral.com/

Here's the link to the Article.

http://www.lumigent.com/go/sd19/

 

posted @ Tuesday, December 21, 2004 12:36 PM | Feedback (3)
Weekend and Holidaze

Wow...it's been 2 months...

It seems there's a common question discussiong how to eliminate holidays (and weekends) from date ranges.  And since I'm sick of doing a search to find it, I'd thought I'd post it.  Also, people ask about daylight savings time.  This is the same type of thing, but since it's regional, there the added twist of having to know where you are.  Anyway, here's the code:

 


CREATE TABLE WeekEndsAndHolidays (DayOfWeekDate datetime, DayName char(3))
GO

SET NOCOUNT ON
DECLARE @FirstSat datetime, @x int
SELECT @FirstSat = '1/3/2004', @x = 1

--Add WeekEnds
WHILE @x < 52
BEGIN
INSERT INTO WeekEndsAndHolidays(DayOfWeekDate, DayName)
SELECT DATEADD(ww,@x,@FirstSat),   'SAT' UNION ALL
SELECT DATEADD(ww,@x,@FirstSat+1), 'SUN'
SELECT @x = @x + 1
END
SET NOCOUNT OFF
GO

SELECT * FROM WeekEndsAndHolidays Order by DayOfWeekDate
GO

-- Add US Holidaze
INSERT INTO WeekEndsAndHolidays(DayOfWeekDate, DayName)
SELECT '1/1/2004',   'THU' UNION ALL
SELECT '2/16/2004',  'MON' UNION ALL
SELECT '5/31/2004',  'MON' UNION ALL
SELECT '7/5/2004',   'MON' UNION ALL
SELECT '9/6/2004',   'MON' UNION ALL
SELECT '11/25/2004', 'THU' UNION ALL
SELECT '11/26/2004', 'FRI' UNION ALL
SELECT '12/24/2004', 'FRI' UNION ALL
SELECT '12/31/2004', 'FRI'
GO

SELECT * FROM WeekEndsAndHolidays Order by DayOfWeekDate
GO


-- WeekDays in May

DECLARE @Start datetime, @End datetime
SELECT @Start = '5/1/2004', @End = '6/1/2004'

SELECT  DATEDIFF(dd,@Start,@End)- COUNT(*) AS WeekDays
  FROM WeekEndsAndHolidays
WHERE DayOfWeekDate BETWEEN @Start AND @End
GO

posted @ Monday, December 20, 2004 1:17 PM | Feedback (0)