Click here to Skip to main content
15,923,015 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
Hello , i have this stored procedure
SQL
PROCEDURE [dbo].[MET_Dynamic_Pages_Insert_Tran]
	--Pgae  Var
	@P_Name nvarchar(50),
	--Status  Var
	@Create_Time nvarchar(100),
	@Update_Time nvarchar(100),
	--Relation Var
	@P_Title  nvarchar(200),
	@P_Contenet nvarchar(max),
	--Relation Var
	@Cat_Id int,
	@Is_Active bit,
	@Menu_Show bit,
	--Out Put Var
	@PageIdSelect int output,
	@MenuShow bit output

AS
BEGIN
	BEGIN TRY
		BEGIN TRAN
			--Varibles
			DECLARE @PageId int , @StatusId int,@ContentId int

			-- insert The Page Name
				INSERT INTO DynamicPages(P_Name)
			VALUES(@P_Name)
			Select @PageId=@@IDENTITY
			-- insert The Page Status
	
			INSERT INTO Status(P_Id,Create_Time,Update_Time)
			VALUES(@PageId,@Create_Time,@Update_Time)
			SELECT @StatusId=@@IDENTITY 
			-- insert The Page Content
	 
			INSERT INTO PagesContent(P_Title,P_Content,P_Id,S_Id)
			VALUES(@P_Title,@P_Contenet,@PageId,@StatusId)
			Select @ContentId=@@IDENTITY
			-- insert The Page Relation
			INSERT INTO DynamicPagesRelation(Dyn_Page_Id,Content_Id,Cat_Id,Status_Id,Is_Active,Menu_Show)
			VALUES(@PageId,@ContentId,@Cat_Id,@StatusId,@Is_Active,@Menu_Show)
	
		COMMIT TRAN

	END TRY
BEGIN CATCH

	ROLLBACK TRAN
	PRINT ' THERE WAS AN ERROR ' 
	PRINT ERROR_MESSAGE()
END CATCH
SET @PageIdSelect=(SELECT @PageId FROM DynamicPagesRelation)
SET @MenuShow = (SELECT @Menu_Show FROM DynamicPagesRelation)
END


thes stored work in the first insertion !
but when i push my button again to use this stored its say that !
ERROR : Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
Posted

1 solution

Since the following returns a record for each record in DynamicPagesRelation you have a problem.
SQL
SET @PageIdSelect=(SELECT @PageId FROM DynamicPagesRelation)
SET @MenuShow = (SELECT @Menu_Show FROM DynamicPagesRelation)


I would suggest:
SQL
SET @PageIdSelect = @PageId
SET @MenuShow = @Menu_Show

or possibly:
SQL
SET @PageIdSelect=(SELECT TOP(1) @PageId FROM DynamicPagesRelation)
SET @MenuShow = (SELECT TOP(1) @Menu_Show FROM DynamicPagesRelation)


I do not know what you are trying for so have made a guess.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900