Included below are some examples of hand-coded T-SQL SQL objects created including nested stored procedures, cursors, triggers, and DBMS / data-mart fact table transactional / extraction routines.
*** USER LOGIN STORED PROC FIRED OFF BY ASP SCRIPTLET |
CREATE Proc asp_AddCustomer @EmailAddress varchar(150), @ServiceCode char(2) As Set NoCount OnUpdate Customer Set Status = 4, EditDate = Convert(char(12),GetDate(),1) Where EmailAddress = @EmailAddressInsert Into Customer(EmailAddress,SubscriptionCode,SignupDate,Status,EditDate) Values(@EmailAddress,@ServiceCode,Convert(char(12),GetDate(),1),1,Convert(char(12),GetDate(),1)) Set NoCount Off |
*** STORED PROCEDURE SNIPPET [OF 1250 LINES OF CODE] *** CALCULATES STATISTICS AND POPULATES DATAMART *** CURSOR FIRED OFF BY TIMED TRIGGER |
—————————————————— Delete YDayStatsSummary — Clears “Old” stats SET DATEFIRST 1 — Sets Sunday as the first day of the week —————————————————— — Cursor to perform statistical calculation routine on all “UserID’s” Declare Hcpr Cursor For Select Distinct UserID From UserTable Where SecurityID = ‘2’ AND Status = ‘1’ Open Hcpr Fetch Next From Hcpr Into @HcprID While @@Fetch_Status = 0 Begin If Exists(Select UserID From UserTable Where UserID = @HcprID ) Begin —————————————————— — Previous SEASON MLB STATS SET @Temp = ( SELECT SUM(ALL dayNumofPicksMLBTotal) FROM DailyStats d Join UserTable u On d.HcprID = u.UserID WHERE d.HcprID = @HcprID AND d.StatDate >= @MLBSeasonStartPrevious AND @MLBSeasonEndPrevious <= d.StatDate )IF @Temp <> 0 BEGIN SET @LastSeasonMLBWinP = ( SELECT CAST(ROUND(SUM(ALL dayNumofWinsMLB)/SUM(ALL dayNumofPicksMLBTotal)*100, 0) AS int) FROM DailyStats d Join UserTable u On d.HcprID = u.UserID WHERE d.HcprID = @HcprID AND d.StatDate >= @MLBSeasonStartPrevious AND @MLBSeasonEndPrevious <= d.StatDate ) END ELSE BEGIN SET @LastSeasonMLBWinP = 0 END SELECT @LastSeasonMLBWins = SUM(ALL dayNumofWinsMLB), @LastSeasonMLBLoss = SUM(ALL dayNumofLossMLB), @LastSeasonMLBPicks = SUM(ALL dayNumofPicksMLBTotal) FROM DailyStats d Join UserTable u On d.HcprID = u.UserID WHERE d.HcprID = @HcprID AND d.StatDate >= @MLBSeasonStartPrevious AND @MLBSeasonEndPrevious <= d.StatDate —————————————————— Insert Into YDayStatsSummary( HcprID, ThisWeekWins, ThisWeekLoss, ThisWeekPicks, ThisWeekWinP, … ) Values( @LastSeasonCBBWins, @LastSeasonCBBLoss, @LastSeasonCBBPicks, @LastSeasonCBBWinP, … ) —————————————————— END — Start Loop Again Fetch Next From Hcpr Into @HcprID END — End LoopClose Hcpr — Close Cursor Deallocate Hcpr — END |
*** STORED PROCEDURE SNIPPET [OF xxxx LINES OF CODE] *** AUTO EMAILS SPECIFIED USERS THAT HAVE NOT COMPLETED A REQUIRED TASK *** EMAILER FIRED OFF BY TIMED TRIGGER |
— EMAIL ADMIN u0026amp; HANDICAPPERS CODE DECLARE @em1 varchar(80), @bdy1 varchar(100), @queryCode varchar(980), @subj varchar(85), @cpy_recpt varchar(28)SET @em1 = ‘user1@company.com;user2@company.com;user3@company.com’ SET @bdy1 = ‘SGC SYSTEM WARNING: Please Update Previous Pick Results ASAP. Do Not reply to this email.’ SET @subj = ‘SGC SYSTEM WARNING: Previous Pick Results Require Immediate Attention’ SET @cpy_recpt = ‘user4@company.com’ SET @queryCode = ‘SELECT Convert(char(11),p.Play_Date) as Play_Date, Pick_Sport, u.FirstName AS HndCpr, SGCTM.TM_Name as FavoriteTeam, HMTEAM.TM_Name as HomeTeam, AWAYTM.TM_Name as AwayTeam, win_loss AS Result, PickType, PickSign, Pick_Spread FROM SportsTeller..Picks p Join SportsTeller..UserTable u On p.UserID = u.UserID INNER JOIN SportsTeller..Teams AS HMTEAM ON p.HM_TM_ID = HMTEAM.Team_ID INNER JOIN SportsTeller..Teams AS AWAYTM ON p.Opp_ID = AWAYTM.Team_ID INNER JOIN SportsTeller..Teams AS SGCTM ON p.SGCPickTM = SGCTM.Team_ID WHERE win_loss = 0 ORDER BY Play_Date ASC’ EXEC master.dbo.xp_sendmail PRINT ‘Request to Update Pick Results Have Been Emailed’ |
*** STORED PROCEDURE SNIPPET [OF xxxx LINES OF CODE] *** CALCULATES STATISTICS AND RETURNS TO ASP PAGE *** ROUTINE FIRED ON REQUEST BY ASP SCRIPTLET |
—————————————- CREATE PROCEDURE Get_AllCurrentCBBSeasonStats ASDECLARE @CBBSeasonStart datetime DECLARE @CBBSeasonEnd datetime SET @CBBSeasonStart = (SELECT Season_Start FROM Seasons WHERE Sport = ‘CBB’ AND Season_Type = ‘Regular’ AND Season = ‘Current’) SET @CBBSeasonEnd = (SELECT Season_End FROM Seasons SELECT d.HcprID, u.FirstName AS HndCpr, From DailyStats d WHERE |
*** STORED PROCEDURE SNIPPET [OF xxxx LINES OF CODE] *** CALCULATES DAILY WEBSITE HITS (FROM SRVR LOGS) AND POPULATES DATAMART *** ROUTINE FIRED OFF BY TIMED TRIGGER |
—————————————-
CREATE PROC usp_updateSGCLogsdaily AS DECLARE @StartDate Char(11) — e.g. Mar 15 2003 BEGIN TRANSACTION SET @StartDate = (SELECT MAX(Convert(char(11),LogTime)) FROM SGCLogs..IISLog) IF @avail <> ‘0’ INSERT INTO SGCLogs..IISLog IF (@@ERROR <> 0) GOTO on_error — DELETE — IF (@@ERROR <> 0) GOTO on_error COMMIT TRANSACTION on_error: |
*** STORED PROCEDURE SNIPPET [OF xxxx LINES OF CODE] *** CALCULATES WEEKLY MULTI-WEBSITE TRAFFIC + SESSION TOTALS (FROM SRVR LOGS) AND *** POPULATES DATAMART *** ROUTINE FIRED OFF BY TIMED TRIGGER |
—————————————-
BEGIN TRANSACTION SELECT @ToYear = DATEPART(year, GETDATE()), SELECT @ThisYear = MAX(TYearNumber), SELECT @ThisWeek = @ThisWeek + 1 WHILE (@ThisYear = @ToYear AND @ThisWeek < @ToWeek) OR (@ThisYear < @ToYear) IF (@@ERROR <> 0) GOTO on_error SELECT @WDSessions = COUNT(EventDateTime) IF (@@ERROR <> 0) GOTO on_error SELECT @CDHits = SUM(THitCount), IF (@@ERROR <> 0) GOTO on_error SELECT @CDSessions = COUNT(EventDateTime) IF (@@ERROR <> 0) GOTO on_error SELECT @WAHits = SUM(THitCount), IF (@@ERROR <> 0) GOTO on_error SELECT @WASessions = COUNT(EventDateTime) IF (@@ERROR <> 0) GOTO on_error INSERT INTO WeekSummary IF (@@ERROR <> 0) GOTO on_error SELECT @ThisWeek = @ThisWeek + 1 INSERT INTO RefererSummary IF (@@ERROR <> 0) GOTO on_error IF (@@ERROR <> 0) GOTO on_error INSERT INTO UserAgentSummary IF (@@ERROR <> 0) GOTO on_error INSERT INTO CountrySummary IF (@@ERROR <> 0) GOTO on_error DELETE IF (@@ERROR <> 0) GOTO on_error COMMIT TRANSACTION on_error: |
** Data Tool Used to Populate OLAP TIME Dimension Table |
CREATE TABLE WeekEndsAndHolidays (DayOfWeekDate datetime, DayName char(3)) GOSET NOCOUNT ON DECLARE @FirstSat datetime, @x int SELECT @FirstSat = ‘1/1/2005’, @x = 1 –Add WeekEnds — SELECT * FROM WeekEndsAndHolidays Order by DayOfWeekDate — Add 2005 US Holidaze — SELECT * FROM WeekEndsAndHolidays — Update WeekEndsAndHolidays Set Comments = ” — WeekDays in May SELECT DATEDIFF(dd,@Start,@End)- COUNT(*) AS WeekDays |
** DATAPUMP SCRIPT – Created to Extract, Transform, u0026amp; Load OLTP Data into a Data Mart for OLTP Analytics |
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Time]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1) drop table [dbo].[Time] GOCREATE TABLE [dbo].[Time] ( [TimeID] [int] NOT NULL , [Date] [datetime] NOT NULL , [SeasonID] [int] NOT NULL , [DayOfWeek] [char] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Month] [numeric](10, 0) NULL , [Day] [numeric](18, 0) NULL , [Year] [numeric](10, 0) NULL , [Quarter] [numeric](10, 0) NULL , [DayOfYear] [numeric](10, 0) NULL , [Holiday] [numeric](18, 0) NULL , [Weekend] [numeric](18, 0) NULL , [YearMonth] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [WeekOfYear] [numeric](10, 0) NULL ) ON [PRIMARY] GO SET QUOTED_IDENTIFIER ON ————————————————– Declare cPicks Cursor For Open cPicks While @@Fetch_Status = 0 ————————————————– — Select INSERT INTO SGCDataMart..Time VALUES — END — Start Loop Again ————————————————- Fetch Next From cPicks Close cPicks — Close Cursor ————————————————– GO Update Time Update Time |