if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_ChangeNotes_Priorities]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[Tasks] DROP CONSTRAINT FK_ChangeNotes_Priorities GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_TaskChanges_Projects]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[Tasks] DROP CONSTRAINT FK_TaskChanges_Projects GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_ChangeNotes_Statuses]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[Tasks] DROP CONSTRAINT FK_ChangeNotes_Statuses GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_TaskHistory_Tasks]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[TaskHistory] DROP CONSTRAINT FK_TaskHistory_Tasks GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Tasks_Users_AssignedTo]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[Tasks] DROP CONSTRAINT FK_Tasks_Users_AssignedTo GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Tasks_Users_ModifiedBy]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[Tasks] DROP CONSTRAINT FK_Tasks_Users_ModifiedBy GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trgTasksUpdate]') and OBJECTPROPERTY(id, N'IsTrigger') = 1) drop trigger [dbo].[trgTasksUpdate] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[AuthenticateUser]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[AuthenticateUser] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ChangePassword]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[ChangePassword] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DeleteUser]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[DeleteUser] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetOneTask]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetOneTask] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetPriorities]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetPriorities] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetProjectHistory]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetProjectHistory] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetProjects]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetProjects] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetStatuses]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetStatuses] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetTasks]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetTasks] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetUserInfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetUserInfo] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetUsers]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[GetUsers] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[InsertProject]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[InsertProject] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[InsertTask]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[InsertTask] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[InsertUser]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[InsertUser] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ResetData]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[ResetData] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UpdateTask]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[UpdateTask] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UpdateUser]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[UpdateUser] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Priorities]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Priorities] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Projects]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Projects] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Statuses]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Statuses] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TaskHistory]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TaskHistory] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Tasks]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Tasks] GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Users]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Users] GO
CREATE TABLE [dbo].[Priorities] ( [PriorityID] [int] IDENTITY (1, 1) NOT NULL , [PriorityText] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[Projects] ( [ProjectID] [int] IDENTITY (1, 1) NOT NULL , [ProjectName] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [ProjectDescription] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [IsDeleted] [bit] NOT NULL , [DateCreated] [datetime] NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[Statuses] ( [StatusID] [int] IDENTITY (1, 1) NOT NULL , [StatusText] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[TaskHistory] ( [TaskHistoryID] [int] IDENTITY (1, 1) NOT NULL , [TaskID] [int] NULL , [ProjectID] [int] NULL , [ModifiedBy] [int] NULL , [AssignedTo] [int] NULL , [TaskSummary] [varchar] (70) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [TaskDescription] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PriorityID] [int] NULL , [StatusID] [int] NULL , [Progress] [int] NULL , [IsDeleted] [bit] NULL , [DateDue] [datetime] NULL , [DateModified] [datetime] NULL , [DateCreated] [datetime] NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[Tasks] ( [TaskID] [int] IDENTITY (1, 1) NOT NULL , [ProjectID] [int] NOT NULL , [ModifiedBy] [int] NOT NULL , [AssignedTo] [int] NOT NULL , [TaskSummary] [varchar] (70) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [TaskDescription] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [PriorityID] [int] NOT NULL , [StatusID] [int] NOT NULL , [Progress] [int] NOT NULL , [IsDeleted] [bit] NOT NULL , [DateDue] [datetime] NOT NULL , [DateModified] [datetime] NOT NULL , [DateCreated] [datetime] NOT NULL ) ON [PRIMARY] GO
CREATE TABLE [dbo].[Users] ( [UserID] [int] IDENTITY (1, 1) NOT NULL , [UserName] [varchar] (16) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [UserPassword] [varchar] (16) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [UserFullName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [UserEmail] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [IsAccountLocked] [bit] NOT NULL , [IsAdministrator] [bit] NOT NULL , [DateCreated] [datetime] NOT NULL ) ON [PRIMARY] GO
ALTER TABLE [dbo].[Priorities] WITH NOCHECK ADD CONSTRAINT [PK_Priorities] PRIMARY KEY CLUSTERED ( [PriorityID] ) ON [PRIMARY] GO
ALTER TABLE [dbo].[Projects] WITH NOCHECK ADD CONSTRAINT [PK_Projects] PRIMARY KEY CLUSTERED ( [ProjectID] ) ON [PRIMARY] GO
ALTER TABLE [dbo].[Statuses] WITH NOCHECK ADD CONSTRAINT [PK_Statuses] PRIMARY KEY CLUSTERED ( [StatusID] ) ON [PRIMARY] GO
ALTER TABLE [dbo].[TaskHistory] WITH NOCHECK ADD CONSTRAINT [PK_TaskHistory] PRIMARY KEY CLUSTERED ( [TaskHistoryID] ) ON [PRIMARY] GO
ALTER TABLE [dbo].[Tasks] WITH NOCHECK ADD CONSTRAINT [PK_ChangeNotes] PRIMARY KEY CLUSTERED ( [TaskID] ) ON [PRIMARY] GO
ALTER TABLE [dbo].[Users] WITH NOCHECK ADD CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED ( [UserID] ) ON [PRIMARY] GO
ALTER TABLE [dbo].[Projects] WITH NOCHECK ADD CONSTRAINT [DF_Projects_IsDeleted] DEFAULT (0) FOR [IsDeleted], CONSTRAINT [DF_Projects_DateCreated] DEFAULT (getdate()) FOR [DateCreated] GO
ALTER TABLE [dbo].[Tasks] WITH NOCHECK ADD CONSTRAINT [DF_Tasks_PercentComplete] DEFAULT (0) FOR [Progress], CONSTRAINT [DF_Tasks_Deleted] DEFAULT (0) FOR [IsDeleted], CONSTRAINT [DF_ChangeNotes_DateModified] DEFAULT (getdate()) FOR [DateModified], CONSTRAINT [DF_ChangeNotes_DateCreated] DEFAULT (getdate()) FOR [DateCreated] GO
ALTER TABLE [dbo].[Users] WITH NOCHECK ADD CONSTRAINT [DF_Users_Disabled] DEFAULT (0) FOR [IsAccountLocked], CONSTRAINT [DF_Users_Administrator] DEFAULT (0) FOR [IsAdministrator], CONSTRAINT [DF_Users_DateCreated] DEFAULT (getdate()) FOR [DateCreated], CONSTRAINT [IX_Users] UNIQUE NONCLUSTERED ( [UserName] ) ON [PRIMARY] GO
ALTER TABLE [dbo].[TaskHistory] ADD CONSTRAINT [FK_TaskHistory_Tasks] FOREIGN KEY ( [TaskID] ) REFERENCES [dbo].[Tasks] ( [TaskID] ) ON DELETE CASCADE GO
ALTER TABLE [dbo].[Tasks] ADD CONSTRAINT [FK_ChangeNotes_Priorities] FOREIGN KEY ( [PriorityID] ) REFERENCES [dbo].[Priorities] ( [PriorityID] ), CONSTRAINT [FK_ChangeNotes_Statuses] FOREIGN KEY ( [StatusID] ) REFERENCES [dbo].[Statuses] ( [StatusID] ), CONSTRAINT [FK_TaskChanges_Projects] FOREIGN KEY ( [ProjectID] ) REFERENCES [dbo].[Projects] ( [ProjectID] ) ON DELETE CASCADE , CONSTRAINT [FK_Tasks_Users_AssignedTo] FOREIGN KEY ( [AssignedTo] ) REFERENCES [dbo].[Users] ( [UserID] ), CONSTRAINT [FK_Tasks_Users_ModifiedBy] FOREIGN KEY ( [ModifiedBy] ) REFERENCES [dbo].[Users] ( [UserID] ) GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [AuthenticateUser] ( @UserName varchar(16), @Password varchar(16) ) AS SELECT UserID FROM Users WHERE (UserName = @UserName AND cast(UserPassword as varbinary) = cast(@Password as varbinary) AND IsAccountLocked = 0)
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [ChangePassword] ( @UserPassword varchar(16), @UserID int ) AS SET NOCOUNT OFF; UPDATE Users Set UserPassword = @UserPassword Where UserID = @UserID;
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [DeleteUser] ( @UserID int ) AS DELETE Users WHERE UserID = @UserID
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [GetOneTask] ( @TaskID integer ) AS SELECT Tasks.TaskID, Tasks.ProjectID, Tasks.ModifiedBy, Tasks.AssignedTo, Tasks.TaskSummary, Tasks.TaskDescription, Tasks.PriorityID, Tasks.StatusID, Tasks.Progress, Tasks.IsDeleted, Tasks.DateDue, Tasks.DateModified, Tasks.DateCreated, Priorities.PriorityText, Statuses.StatusText, Users.UserFullName As AssignedToText, u.UserFullName As ModifiedByText FROM Tasks JOIN Priorities ON Tasks.PriorityID = Priorities.PriorityID JOIN Users ON Tasks.AssignedTo = Users.UserID JOIN Users u ON Tasks.ModifiedBy = u.UserID JOIN Statuses ON Tasks.StatusID = Statuses.StatusID WHERE Tasks.TaskID = @TaskID And Tasks.IsDeleted = 0
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [GetPriorities] AS SET NOCOUNT ON; SELECT PriorityID, PriorityText FROM Priorities
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [GetProjectHistory] ( @ProjectID int ) AS SET NOCOUNT ON; SELECT TaskHistory.TaskHistoryID, TaskHistory.TaskID, TaskHistory.ProjectID, TaskHistory.ModifiedBy, TaskHistory.AssignedTo, TaskHistory.TaskSummary, TaskHistory.TaskDescription, TaskHistory.PriorityID, TaskHistory.StatusID, TaskHistory.Progress, TaskHistory.IsDeleted, TaskHistory.DateDue, TaskHistory.DateModified, TaskHistory.DateCreated, Priorities.PriorityText, Statuses.StatusText, Users.UserFullName As AssignedToText, u.UserFullName As ModifiedByText FROM TaskHistory JOIN Priorities ON TaskHistory.PriorityID = Priorities.PriorityID JOIN Users ON TaskHistory.AssignedTo = Users.UserID JOIN Users u ON TaskHistory.ModifiedBy = u.UserID JOIN Statuses ON TaskHistory.StatusID = Statuses.StatusID WHERE TaskHistory.ProjectID = @ProjectID AND TaskHistory.IsDeleted = 0 ORDER BY DateModified DESC
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [GetProjects] AS SET NOCOUNT ON; SELECT ProjectID, ProjectName, ProjectDescription, DateCreated FROM Projects WHERE (IsDeleted = 0)
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [GetStatuses] AS SET NOCOUNT ON; SELECT StatusID, StatusText FROM Statuses
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [GetTasks] ( @ProjectID int ) AS SET NOCOUNT ON; SELECT Tasks.TaskID, Tasks.ProjectID, Tasks.ModifiedBy, Tasks.AssignedTo, Tasks.TaskSummary, Tasks.TaskDescription, Tasks.PriorityID, Tasks.StatusID, Tasks.Progress, Tasks.IsDeleted, Tasks.DateDue, Tasks.DateModified, Tasks.DateCreated, Priorities.PriorityText, Statuses.StatusText, Users.UserFullName As AssignedToText, u.UserFullName As ModifiedByText FROM Tasks JOIN Priorities ON Tasks.PriorityID = Priorities.PriorityID JOIN Users ON Tasks.AssignedTo = Users.UserID JOIN Users u ON Tasks.ModifiedBy = u.UserID JOIN Statuses ON Tasks.StatusID = Statuses.StatusID WHERE Tasks.ProjectID = @ProjectID And Tasks.IsDeleted = 0
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [GetUserInfo] ( @UserID int ) AS SELECT UserID, UserName, UserFullName, UserEmail, IsAdministrator, IsAccountLocked FROM Users WHERE (UserID = @UserID)
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [GetUsers] AS SET NOCOUNT ON; SELECT UserID, UserName, UserFullName, UserEmail, IsAdministrator, IsAccountLocked FROM Users
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [InsertProject] ( @ProjectName varchar(20), @ProjectDescription varchar(100) ) AS SET NOCOUNT OFF; INSERT INTO Projects (ProjectName, ProjectDescription, DateCreated) VALUES (@ProjectName, @ProjectDescription, getdate()); SELECT @@IDENTITY As ProjectID
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [InsertTask] ( @ProjectID int, @ModifiedBy int, @AssignedTo int, @TaskSummary varchar(70), @TaskDescription varchar(500), @PriorityID int, @StatusID int, @Progress int, @DateDue datetime ) AS SET NOCOUNT OFF; INSERT INTO Tasks (ProjectID, ModifiedBy, AssignedTo, TaskSummary, TaskDescription, PriorityID, StatusID, Progress, DateDue) VALUES (@ProjectID, @ModifiedBy, @AssignedTo, @TaskSummary, @TaskDescription, @PriorityID, @StatusID, @Progress, @DateDue) SELECT TaskID, ProjectID, ModifiedBy, AssignedTo, TaskSummary, TaskDescription, PriorityID, StatusID, Progress, IsDeleted, DateDue, DateModified, DateCreated FROM Tasks WHERE (TaskID = @@IDENTITY)
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [InsertUser] ( @UserName varchar(16), @UserPassword varchar(16), @UserFullName varchar(50), @UserEmail varchar(50), @IsAdministrator bit, @IsAccountLocked bit ) AS SET NOCOUNT OFF; INSERT INTO Users (UserName, UserPassword, UserFullName, UserEmail, IsAdministrator, IsAccountLocked) VALUES (@UserName, @UserPassword, @UserFullName, @UserEmail, @IsAdministrator, @IsAccountLocked); SELECT @@IDENTITY AS UserID
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [ResetData] AS Declare @Project1 int, @Project2 int, @User1 int, @User2 int
Delete Projects Delete Tasks Delete TaskHistory Delete Users
-- Insert Projects INSERT INTO Projects VALUES ('Acme', 'This is a test project.', 0, GetDate()); Set @Project1 = @@IDENTITY; INSERT INTO Projects VALUES ('Microsoft', 'This is a test project.', 0, GetDate()); Set @Project2 = @@IDENTITY;
-- Insert Users INSERT INTO Users VALUES ('jdoe', 'welcome', 'John Doe', 'jdoe@mycompany.com', 0, 1, GetDate()); Set @User1 = @@IDENTITY; INSERT INTO Users VALUES ('administrator', 'welcome', 'Admin', 'admin@mycompany.com', 0, 1, GetDate()); Set @User2 = @@IDENTITY;
--Insert Tasks INSERT INTO Tasks VALUES (@Project1, @User1, @User2, 'Application requires testing.', '<Sample Description>', 1, 1, 25, 0, GetDate(), GetDate(), GetDate()) INSERT INTO Tasks VALUES (@Project1, @User1, @User2, 'Photocopier Jammed.', '<Sample Description>', 2, 1, 0, 0, GetDate(), GetDate(), GetDate()) INSERT INTO Tasks VALUES (@Project1, @User2, @User1, 'Website error appearing.', '<Sample Description>', 3, 1, 0, 0, GetDate(), GetDate(), GetDate()) INSERT INTO Tasks VALUES (@Project1, @User2, @User1, 'Computer broken.', '<Sample Description>.', 1, 1, 25, 0, GetDate(), GetDate(), GetDate()) INSERT INTO Tasks VALUES (@Project1, @User2, @User1, 'Consumer complaint.', '<Sample Description>', 2, 1, 100, 0, GetDate(), GetDate(), GetDate()) INSERT INTO Tasks VALUES (@Project1, @User1, @User2, 'Bug found.', '<Sample Description>', 3, 1, 100, 0, GetDate(), GetDate(), GetDate())
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [UpdateTask] ( @TaskID int, @ProjectID int, @ModifiedBy int, @AssignedTo int, @TaskSummary varchar(70), @TaskDescription varchar(500), @PriorityID int, @StatusID int, @Progress int, @IsDeleted bit, @DateDue datetime, @DateModified datetime, @DateCreated datetime, @Original_ProjectID int, @Original_ModifiedBy int, @Original_AssignedTo int, @Original_TaskSummary varchar(70), @Original_TaskDescription varchar(500), @Original_PriorityID int, @Original_StatusID int, @Original_Progress int, @Original_IsDeleted bit, @Original_DateDue datetime, @Original_DateModified datetime, @Original_DateCreated datetime ) AS SET NOCOUNT OFF; --note we are using convert to varchar on the date comparison so that the pocket pc app can use this sp. --the pocket pc app stores offline data in Sql CE which only supports a 4 byte datetime. UPDATE Tasks SET ProjectID = @ProjectID, ModifiedBy = @ModifiedBy, AssignedTo = @AssignedTo, TaskSummary = @TaskSummary, TaskDescription = @TaskDescription, PriorityID = @PriorityID, StatusID = @StatusID, Progress = @Progress, IsDeleted = @IsDeleted, DateDue = @DateDue, DateModified = @DateModified WHERE (TaskID = @TaskID) AND (ProjectID = @Original_ProjectID) AND (ModifiedBy = @Original_ModifiedBy) AND (AssignedTo = @Original_AssignedTo) AND (TaskSummary = @Original_TaskSummary) AND (TaskDescription = @Original_TaskDescription) AND (ProjectID = @Original_ProjectID) AND (StatusID = @Original_StatusID) AND (Progress = @Original_Progress) AND (IsDeleted = @Original_IsDeleted) AND (convert(varchar(20), DateDue) = convert(varchar(20), @Original_DateDue)) AND (convert(varchar(20), DateModified) = convert(varchar(20), @Original_DateModified)) AND (convert(varchar(20), DateCreated) = convert(varchar(20), @Original_DateCreated)) AND (PriorityID = @Original_PriorityID); SELECT TaskID, ProjectID, ModifiedBy, AssignedTo, TaskSummary, TaskDescription, PriorityID, StatusID, Progress, IsDeleted, DateDue, DateModified, DateCreated FROM Tasks WHERE (TaskID = @TaskID)
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE PROCEDURE [UpdateUser] ( @UserPassword varchar(16), @UserFullName varchar(50), @UserEmail varchar(50), @IsAdministrator bit, @IsAccountLocked bit, @UserID int ) AS SET NOCOUNT OFF; If @UserPassword = '' UPDATE Users Set UserFullName = @UserFullName, UserEmail = @UserEmail, IsAdministrator = @IsAdministrator, IsAccountLocked = @IsAccountLocked Where UserID = @UserID; Else UPDATE Users Set UserPassword = @UserPassword, UserFullName = @UserFullName, UserEmail = @UserEmail, IsAdministrator = @IsAdministrator, IsAccountLocked = @IsAccountLocked Where UserID = @UserID;
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
CREATE TRIGGER trgTasksUpdate ON [Tasks] FOR INSERT, UPDATE AS INSERT INTO TaskHistory SELECT TaskID, ProjectID, ModifiedBy, AssignedTo, TaskSummary, TaskDescription, PriorityID, StatusID, Progress, IsDeleted, DateDue, DateModified, DateCreated FROM INSERTED
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
|