IF OBJECT_ID('TempDB..#AllRecords', N'U') IS NOT NULL DROP TABLE #AllRecords>I have the following stored proc which is throwing an exception: "Invalid Ojbect: #AllRecords". It runs fine from sql management console, but not from .net.
> >/* >gp_GetProjectPageCountReportByCriteria >2016.03.31/jb Created >SAMPLE Usage: > >EXECUTE dbo.gp_GetProjectPageCountReportByCriteria 542 >**************************************************************************/ >-- Initialize this stored procedure >gp_InitializeProcedure 'gp_GetProjectPageCountReportByCriteria', 'Fetch page count report data based on account period.' >GO > >-- Script this stored procedure in an ALTER so permissions are not lost >ALTER PROCEDURE dbo.gp_GetProjectPageCountReportByCriteria > @PeriodId int >AS > --For Performance to cut down on network bandwidth. > SET NOCOUNT ON; > --To Reduce the risk of lock contention > SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; > > DECLARE @RecordsForReturn TABLE > ( > AccountPeriod nvarchar(32), > Site nvarchar(256), > Environment nvarchar(256), > Complex nvarchar(128), > FundGroup NVARCHAR(256), > Fund NVARCHAR(4000), > FundCode NVARCHAR(4000), > ProjectName nvarchar(256), > Frequency nvarchar(16), > OutputMedia nvarchar(32), > Revision nvarchar(12), > OutputType nvarchar(12), > Comments nvarchar(MAX), > PublishDateTime nvarchar(32), > [User] nvarchar(256), > ProjectPageCount nvarchar(12), > DocumentLink nvarchar(12) > ) > > DECLARE @FundTable TABLE > ( > Id INT IDENTITY(1,1), > Fund nvarchar(128) , > FundCode nvarchar(16) > ) > > > CREATE TABLE #AllRecords > ( > Id INT IDENTITY(1,1), > AccountPeriod nvarchar(32), > Site nvarchar(256), > Environment nvarchar(256), > Complex nvarchar(128), > FundGroup nvarchar(256), > Fund nvarchar(128), > FundCode nvarchar(16), > ProjectName nvarchar(256), > Frequency nvarchar(16), > OutputMedia nvarchar(32), > Revision nvarchar(12), > OutputType nvarchar(12), > Comments nvarchar(MAX), > PublishDateTime nvarchar(32), > [User] nvarchar(256), > ProjectPageCount nvarchar(12), > DocumentLink nvarchar(12), > Deleted BIT > ) > > CREATE INDEX IDX_FundGroup ON #AllRecords(FundGroup) > CREATE INDEX IDX_Fund ON #AllRecords(Fund) > CREATE INDEX IDX_FundCode ON #AllRecords(FundCode) > > DECLARE @CurrentRecord TABLE > ( > Id INT, > AccountPeriod nvarchar(32), > Site nvarchar(256), > Environment nvarchar(256), > Complex nvarchar(128), > FundGroup nvarchar(256), > Fund nvarchar(4000), > FundCode nvarchar(4000), > ProjectName nvarchar(256), > Frequency nvarchar(16), > OutputMedia nvarchar(32), > Revision nvarchar(12), > OutputType nvarchar(12), > Comments nvarchar(MAX), > PublishDateTime nvarchar(32), > [User] nvarchar(256), > ProjectPageCount nvarchar(12), > DocumentLink nvarchar(12) > ) > > DECLARE @FundList VARCHAR(4000) = '', > @FundCodeList VARCHAR(4000) = '', > @MainIndex INT, > @SubIndex INT, > @TotalRecordsMain INT, > @TotalRecordsSub INT, > @FundGroup NVARCHAR(256), > @OldFundGroup NVARCHAR(256), > @OldFund NVARCHAR(128), > @OldFundCode NVARCHAR(16), > @CurFund NVARCHAR(128), > @CurFundCode NVARCHAR(16) > > > INSERT INTO #AllRecords > SELECT DISTINCT ap.AccountPeriodEnd, > '' AS Site, > '' AS Environment, > c.ComplexName AS Complex, > fg.FundGroupName AS FundGroup, > f.FundName AS Fund, > f.FundCode, > di.DocumentInstanceName AS ProjectName, > di.PeriodType AS Frequency, > oq.OutputType AS OutputMedia, > dio.Version AS Revision, > oq.OutputType, > dic.Comments, > dio.LastGeneratedDate AS PublishDateTime, > oq.UserName AS [User], > oq.PDFPageCount AS ProjectPageCount, > dio.PK_DocumentInstanceOutput AS DocumentLink, > Deleted = 0 > FROM OutputQueue oq > INNER JOIN DocumentInstanceOutput dio ON oq.FK_DocumentInstanceOutput = dio.PK_DocumentInstanceOutput > INNER JOIN DocumentInstanceOutputFormat diof ON diof.PK_DocumentInstanceOutputFormat = dio.FK_DocumentInstanceOutputFormat > INNER JOIN DocumentInstance di ON di.PK_DocumentInstance = diof.FK_DocumentInstance > INNER JOIN Complex c ON c.PK_Complex = di.FK_Complex > INNER JOIN FundGroup fg ON fg.FK_Complex = c.PK_Complex > INNER JOIN Fund f ON f.FK_FundGroup = fg.PK_FundGroup > INNER JOIN ComplexAccountPeriod cap on cap.FK_Complex = c.PK_Complex AND > cap.ComplexAccountPeriodType = 'SR' > INNER JOIN AccountPeriod ap ON ap.PK_AccountPeriod = di.FK_AccountPeriod > LEFT JOIN DocumentInstanceComment dic ON dic.FK_DocumentInstanceOutput = dio.PK_DocumentInstanceOutput > LEFT JOIN UserInfo ui ON ui.PK_UserInfo = dic.FK_UserInfo AND > ui.UserName = oq.UserName > WHERE di.FK_AccountPeriod = 542 AND > oq.OutputType IN ('PDF', 'WORD') > ORDER BY Complex, FundGroup, Fund, FundCode, Revision DESC > > SET @MainIndex = 1; > SET @OldFundGroup = ''; > SET @TotalRecordsMain = (SELECT COUNT(*) FROM #AllRecords) > > WHILE (@MainIndex < @TotalRecordsMain) > BEGIN > INSERT INTO @CurrentRecord > SELECT TOP 1 > id, > AccountPeriod, > Site, > Environment, > Complex, > FundGroup, > Fund, > FundCode, > ProjectName, > Frequency, > OutputMedia, > Revision, > OutputType, > Comments, > PublishDateTime, > [User], > ProjectPageCount, > DocumentLink > FROM #AllRecords > WHERE FundGroup != @OldFundGroup AND > Deleted != 1 > > SET @FundGroup = (SELECT FundGroup FROM @CurrentRecord) > IF @FundGroup != @OldFundGroup > BEGIN > SET @OldFundGroup = @FundGroup > > INSERT INTO @FundTable > SELECT DISTINCT Fund, FundCode > FROM #AllRecords > WHERE FundGroup = @FundGroup > > SELECT @FundList = @FundList + Fund + ', ', > @FundCodeList = @FundCodeList + FundCode + ', ' > FROM @FundTable > > UPDATE @CurrentRecord > SET Fund = @FundList, > FundCode = @FundCodeList > > > INSERT INTO @RecordsForReturn > SELECT AccountPeriod, > Site, > Environment, > Complex, > FundGroup, > Fund, > FundCode, > ProjectName, > Frequency, > OutputMedia, > Revision, > OutputType, > Comments, > PublishDateTime, > [User], > ProjectPageCount, > DocumentLink > FROM @CurrentRecord > > UPDATE #AllRecords SET Deleted = 1 WHERE FundGroup = @FundGroup > DELETE FROM @FundTable > DELETE FROM @CurrentRecord > END > > SET @TotalRecordsMain = (SELECT COUNT(*) FROM #AllRecords WHERE FundGroup != @FundGroup AND Deleted != 1) > SET @MainIndex = 1 > SET @FundList = '' > SET @FundCodeList = '' > END > > SELECT * FROM @RecordsForReturn > DROP TABLE #AllRecords > >GO >