I'm trying to pass a new ID onto another procedure but keep getting a "too many parameters" error.
CREATE OR ALTER PROCEDURE dbo.Process_Insert
@Name VARCHAR(50),
@IntOnly INT,
@enabled BIT,
@CustomerID INT,
@AllowAttr BIT,
@IsKit BIT = 0,
@Body NVARCHAR(MAX)=NULL,
@new_ident INT NULL OUTPUT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO Process
(Name,
IntOnly,
enabled,
CustomerID,
AllowAttr,
IsKit,
Body)
VALUES
(
@Name, @IntOnly, @enabled, @CustomerID, @AllowAttr, @IsKit, @Body);
SET @new_ident=SCOPE_IDENTITY();
END;
Then in the below procedure I get "Procedure or function has too many arguments specified". I'm guessing it has something to do with the output parameter, but can't work it out.
CREATE OR ALTER PROCEDURE dbo.Customer_Init
@CustID INT
AS
DECLARE
@vendID INT;
EXEC dbo.Process_Insert
@Name="NameOfEntry",
@IntOnly=0,
@enabled=False,
@CustomerID=@CustID,
@AllowAttr=False,
@Body="test",
@new_ident=@vendID OUTPUT;
SELECT @vendID;
Best Answer
You need to pass @IsKit as well, between AllowAttr and Body.