Tuesday, 17 September 2013

Cannot insert to more than one table

Cannot insert to more than one table

I am trying to execute a stored procedure via excel VBA, however the
stored procedure only inserts a record into a single table and throws an
error message when the other 2 records are to be inserted to their
respective tables
The error message is thrown on the VBA side however in SQL management
studio there are no errors yet it still only inserts to the single table.
USE [MainRoads]
GO
/****** Object: StoredProcedure [mruser].[sp_InsertUpdateProject]
Script Date: 18/09/2013 3:04:49 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [mruser].[sp_InsertUpdateProject]
-- Add the parameters for the stored procedure here
--@ProjectRecord_ID numeric(18,0),
@lProjectNumber numeric(18,0),
@sProjectName nvarchar(300),
@sProjectType nvarchar(100),
@sDirectorate nvarchar(300),
@sProjectManager nvarchar(300),
@sContractType nchar(10),
@sProjectDescription nvarchar(max),
@sCurrentPhase nvarchar(50),
@sProjectStartDate date,
@sPlannedCompDate date,
@sReportingPeriod nchar(10),
@sProjectStatusAt date,
@sPSRApprovedBy nvarchar(100),
@sPSRApprovedDate date,
@sProjectOverallHlth text,
@sProjectWrkflwStatus nchar(10),
@sProjectRAGStatus nchar(10),
@sAssessRAG nchar(10),
@sSelectRAG nchar(10),
@sDevelopRAG nchar(10),
@sDeliverRAG nchar(10),
@sOperateRAG nchar(10),
@lTotalOrigBudget decimal(18,2),
@lTotalAppBudget decimal(18,2),
@lActualsLifeToDate decimal(18,2),
@lTotalForecastToComplete decimal(18,2),
@lTotalProjVar decimal(18,2),
@lCommFunding decimal(18,2),
@lStateFunding decimal(18,2),
@lOthFunding decimal(18,2),
@sCommFundType nvarchar(50),
@sStateFundType nvarchar(50),
@sOthFundType nvarchar(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
Declare @v_recordexist int
Select @v_recordexist = count(*) From Project_Information Where
Project_Number = @lProjectNumber
--If record does not exists update record
IF @v_recordexist = 0
BEGIN
INSERT INTO [mruser].[Project_Information] ([Project_Number],
[Project_Name], [Project_Type], [Directorate],
[Project_Manager],[Contract_Type], [Project_Description],
[Current_RO&DS_Phase],
[Project_Start_Date],[Planned_Completion_Date],
[Reporting_Period], [Project_Status_At], [PSR_Approved_By],
[PSR_Approved_Date], [Project_Overall_Health],
[Project_Workflow_Status], [Project_RAG_Status], [Date_Inserted] )
values(@lProjectNumber, @sProjectName, @sProjectType,
@sDirectorate, @sProjectManager, @sContractType,
@sProjectDescription, @sCurrentPhase, @sProjectStartDate,
@sPlannedCompDate, @sReportingPeriod, @sProjectStatusAt,
@sPSRApprovedBy, @sPSRApprovedDate, @sProjectOverallHlth,
@sProjectWrkflwStatus, @sProjectRAGStatus, GETDATE())
--SELECT SCOPE_IDENTITY() as ProjectIDNumber
BEGIN
Insert into [mruser].[Project_Finance] ([Project_Number],
[Total_Original_Budget], [Total_Approved_Budget],
[Actuals_Life_To_Date], [Total_Forecast_Cost_To_Complete],
[Total_Project_Variance], [Commonwealth_Funding],
[State_Funding], [Other_Funding], [Commonwealth_Fund_Type],
[State_Fund_Type], [Other_Fund_Type]) values (@lProjectNumber,
@lTotalOrigBudget, @lTotalAppBudget, @lActualsLifeToDate,
@lTotalForecastToComplete ,@lTotalProjVar ,@lCommFunding
,@lStateFunding ,@lOthFunding ,@sCommFundType ,@sStateFundType
,@sOthFundType)
--(strClientID, timeReg, timeValid, bCurrent, durum)
VALUES (@strClientID,getdate(),getdate() + 30,'1','1')
Insert into [mruser].[Project_Milestones] ([Project_Number],
[Assess_RAG_Status], [Select_RAG_Status],
[Develop_RAG_Status], [Deliver_RAG_Status],
[Operate_RAG_Status]) values(@lProjectNumber, @sAssessRAG,
@sSelectRAG, @sDeliverRAG, @sDevelopRAG, @sOperateRAG)
--Insert into [mruser].[Project_Finance] ([Project_Number],
[Total_Original_Budget], [Total_Approved_Budget],
[Actuals_Life_To_Date], [Total_Forecast_Cost_To_Complete],
[Total_Project_Variance], [Commonwealth_Funding],
[State_Funding], [Other_Funding], [Commonwealth_Fund_Type],
[State_Fund_Type], [Other_Fund_Type]) values (@lProjectNumber,
@lTotalOrigBudget, @lTotalAppBudget, @lActualsLifeToDate,
@lTotalForecastToComplete ,@lTotalProjVar ,@lCommFunding
,@lStateFunding ,@lOthFunding ,@sCommFundType ,@sStateFundType
,@sOthFundType)
END
End
Else
BEGIN
update [mruser].[Project_Information] set
[Project_Number] = @lProjectNumber,
[Project_Name] = @sProjectName,
[Project_Type] = @sProjectType,
[Directorate] = @sDirectorate,
[Project_Manager] = @sProjectManager,
[Contract_Type] = @sContractType,
[Project_Description] = @sProjectDescription,
[Current_RO&DS_Phase] = @sCurrentPhase,
[Project_Start_Date] = @sProjectStartDate,
[Planned_Completion_Date] = @sPlannedCompDate,
[Reporting_Period] = @sReportingPeriod,
[Project_Status_At] = @sProjectStatusAt,
[PSR_Approved_By] = @sPSRApprovedBy,
[PSR_Approved_Date] = @sPSRApprovedDate,
[Project_Overall_Health] = @sProjectOverallHlth,
[Project_Workflow_Status] = @sProjectWrkflwStatus,
[Project_RAG_Status] = @sProjectRAGStatus
where [Project_Number] = @lProjectNumber
update [mruser].[Project_Milestones] set
[Project_Number] = @lProjectNumber,
[Assess_RAG_Status] = @sAssessRAG,
[Select_RAG_Status] = @sSelectRAG,
[Develop_RAG_Status] = @sDeliverRAG,
[Deliver_RAG_Status] = @sDevelopRAG,
[Operate_RAG_Status] = @sOperateRAG
where [Project_Number] = @lProjectNumber
UPDATE [mruser].[Project_Finance] set
[Project_Number] = @lProjectNumber,
[Total_Original_Budget] = @lTotalOrigBudget,
[Total_Approved_Budget] = @lTotalAppBudget,
[Actuals_Life_To_Date] = @lActualsLifeToDate,
[Total_Forecast_Cost_To_Complete] = @lTotalForecastToComplete,
[Total_Project_Variance] = @lTotalProjVar,
[Commonwealth_Funding] = @lCommFunding,
[State_Funding] = @lStateFunding,
[Other_Funding] = @lOthFunding,
[Commonwealth_Fund_Type] = @sCommFundType,
[State_Fund_Type] = @sStateFundType,
[Other_Fund_Type] = @sOthFundType
where [Project_Number] = @lProjectNumber
END
End

No comments:

Post a Comment