Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Invalid Object #AllRecords
Message
 
 
À
26/04/2016 10:45:23
John Baird
Coatesville, Pennsylvanie, États-Unis
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Divers
Thread ID:
01635414
Message ID:
01635419
Vues:
53
Add before creation of the temporary table:
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
>
If it's not broken, fix it until it is.


My Blog
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform