Invalid object name when creating stored procedure
13,318
GO
is causing the problem. It is ending the batch containing the CREATE PROCEDURE
. Here's what is happening simplified.
IF OBJECT_ID('Test1') IS NOT NULL
DROP PROCEDURE test1
GO -- End batch
CREATE PROCEDURE Test1
AS
IF Object_id('tempdb.dbo.#temp') IS NOT NULL
DROP TABLE #temp
SELECT 1 AS test
INTO #temp
GO -- Ends the CREATE PROCEDURE batch
SELECT *
FROM #temp
Author by
AndrewMo
Updated on June 06, 2022Comments
-
AndrewMo almost 2 years
I am trying to create a stored procedure on SQL Server 2008. Whenever I try to execute the procedure I get an Invalid object name error on the #EDPTS table. Can someone please take a look at the below code to let me know what might be creating the issue? Thank you in advance
use maindb go CREATE PROCEDURE DailyStats AS set transaction isolation level read uncommitted DECLARE @STARTDATE DATE, @ENDDATE DATE SET @ENDDATE = CAST(GETDATE() AS DATE) SET @STARTDATE = DATEADD(DAY,-1, @ENDDATE) if OBJECT_ID('tempdb..#EDPTS')is not null drop table #EDPTS SELECT DISTINCT PV.[EID] ,ENC.PERSON_ID ,PV.[VisitNumber] ,ENC.MRN ,PER.NAME_FULL_FORMATTED as 'PTName' ,PER.SEX_CD_DESCR as 'Gender' ,CONVERT(varchar,PER.BIRTH_DT_TM,101)as 'DOB' ,DATEDIFF (YEAR,PER.BIRTH_DT_TM,ENC.ARRIVE_DT_TM)as 'ArrivalAge' ,MIN (CHIN.CHECKIN_DT_TM) as 'EDArrival' ,ENC.ADMIT_MODE_CD_DESCR ,ENC.REASON_FOR_VISIT as 'ChiefComp' ,[PatientClass] ,ACCOMMODATION_CD_DESCR as 'Accommodation' ,[AssignedPatientLocationFacility] ,[AdmitSourceDescr] ,[FinancialClass] ,CHIN.CHECKOUT_DISPOSITION_CD_DESCR as 'DCDispo' ,CASE WHEN MAX (CHIN.CHECKOUT_DT_TM) = '2100-12-31 00:00:00.000' then NULL ELSE MAX (CHIN.CHECKOUT_DT_TM)END as 'EDDepart' ,CASE WHEN DATEDIFF (minute,MIN(CHIN.CHECKIN_DT_TM),MAX(CHIN.CHECKOUT_DT_TM))> '1440' then NULL ELSE DATEDIFF (minute,MIN(CHIN.CHECKIN_DT_TM),MAX(CHIN.CHECKOUT_DT_TM))END as 'EDLOS' INTO #EDPTS --finds ed pts FROM tbl.one with (nolock) --more ed data INNER JOIN tbl.two with (nolock) on PV.EID = ENC.EID --finds demographics INNER JOIN tbl.three with (nolock) on ENC.PERSON_ID = PER.PERSON_ID --finds ed discharge LEFT Join tbl.four with (nolock) on ENC.EID = CHIN.EID WHERE AdmissionType = '1' and CHIN.CHECKIN_DT_TM between @STARTDATE and @ENDDATE and AccountStatus <> 'CANCELLED and chin.CHECKOUT_DISPOSITION_CD_DESCR <> 'Duplicate/Accidental Registration' and enc.ENCNTR_CLASS_CD_DESCR <> 'Preadmit' and ENC.ENCNTR_CLASS_CD_DESCR <> 'Limited Stay GROUP BY PV.[EID] ,ENC.PERSON_ID ,PV.[VisitNumber] ,ENC.MRN ,PER.NAME_FULL_FORMATTED ,PER.SEX_CD_DESCR ,CONVERT(varchar,PER.BIRTH_DT_TM,101) ,DATEDIFF (YEAR,PER.BIRTH_DT_TM,ENC.ARRIVE_DT_TM) ,ENC.ADMIT_MODE_CD_DESCR ,ENC.REASON_FOR_VISIT ,[PatientClass] ,ACCOMMODATION_CD_DESCR ,[AssignedPatientLocationFacility] ,[AdmitSourceDescr] ,[FinancialClass] ,CHECKOUT_DISPOSITION_CD_DESCR GO if OBJECT_ID('tempdb..#Tri')is not null drop table #Tri SELECT EVE.EID ,MIN (CE.PERFORMED_DT_TM)as 'TriStart' ,MIN (EVE.COMPLETE_DT_TM) as 'TriComp' ,MAX(PRSNL.NAME_FULL_FORMATTED) as 'TriNurse' INTO #Tri from tbl.one GO if OBJECT_ID('tempdb..#Tri2')is not null drop table #Tri2 SELECT CE.EID ,MAX(CE.RESULT_VAL) as 'Acuity GROUP BY CE.EID GO if OBJECT_ID('tempdb..#EDBed')is not null drop table #EDBed if OBJECT_ID('tempdb..#MDtoSee')is not null drop table #MDtoSee SELECT EVE.EID ,MIN (EVE.COMPLETE_DT_TM) as 'MDtoSee SELECT #EDPTS.EID ,#EDPTS.PERSON_ID ,#EDPTS.VisitNumber ,#EDPTS.AssignedPatientLocationFacility ,#EDPTS.MRN ,#EDPTS.PTName ,#EDPTS.Gender ,#EDPTS.DOB ,#EDPTS.ArrivalAge ,MIN(#EDPTS.EDArrival)as EDArrival ,#EDPTS.ADMIT_MODE_CD_DESCR ,#EDPTS.ChiefComp ,#EDPTS.AdmitSourceDescr ,#Tri2.Acuity ,#Tri.TriStart ,#Tri.TriComp ,DATEDIFF (minute,#EDPTS.EDArrival,#Tri.TriStart) ,DATEDIFF (minute,#Tri.TriStart,#Tri.TriComp) ,#Tri.TriNurse ,#EDBed.EDBed ,DATEDIFF (minute,#EDPTS.EDArrival,#EDBed.EDBed) ,#MDtoSee.MDtoSee ,DATEDIFF (minute,#EDPTS.EDArrival,#MDtoSee.MDtoSee) ,#EDPTS.PatientClass ,#EDPTS.FinancialClass ,#EDPTS.Accommodation ,#EDPTS.DCDispo ,MAX(#EDPTS.EDDepart)as EDDepart ,#EDPTS.EDLOS FROM #EDPTS with (nolock)LEFT JOIN #Tri with (nolock) on #EDPTS.EID = #Tri.EID LEFT JOIN #Tri2 with (nolock) on #EDPTS.EID = #Tri2.EID LEFT JOIN #EDBed with (nolock) on #EDPTS.EID = #EDBed.EID LEFT JOIN #MDtoSee with (nolock) on #EDPTS.EID = #MDtoSee.EID GROUP BY #EDPTS.EID ,#EDPTS.PERSON_ID ,#EDPTS.VisitNumber ,#EDPTS.AssignedPatientLocationFacility ,#EDPTS.MRN ,#EDPTS.PTName ,#EDPTS.Gender ,#EDPTS.DOB ,#EDPTS.ArrivalAge ,#EDPTS.ADMIT_MODE_CD_DESCR ,#EDPTS.ChiefComp ,#EDPTS.AdmitSourceDescr ,#Tri2.Acuity ,#Tri.TriStart ,#Tri.TriComp ,DATEDIFF (minute,#EDPTS.EDArrival,#Tri.TriStart) ,DATEDIFF (minute,#Tri.TriStart,#Tri.TriComp) ,#Tri.TriNurse ,#EDBed.EDBed