Click here to Skip to main content
15,893,381 members
Please Sign up or sign in to vote.
2.00/5 (1 vote)
See more: , +
Dear all,

here i'm struggling with sql syntax error.here i have posted my sql strore procedure and error..

please find where's that error.Please help me...

SQL
GO
CREATE PROCEDURE SP_ADD_ENQUIRIES(
@POL VARCHAR(50),
@POD VARCHAR(50),
@FPOD VARCHAR(50),
@WEIGHT REAL,
@SHIPPER VARCHAR(150),
@CONSIGNEE VARCHAR(150)
)
AS
DECLARE @SUFFIX INT;
DECLARE @PREFIX VARCHAR(3);
DECLARE @RESULT VARCHAR(MAX);
SET @PREFIX='ENQ';
DECLARE @ENQUIRY_ID VARCHAR(MAX);
IF NOT EXISTS(SELECT * FROM ENQUIRY_MASTER)
INSERT INTO ENQUIRY_MASTER VALUES('ENQ_1',@POL,@POD,@FPOD,@WEIGHT,@SHIPPER,@CONSIGNEE)
ELSE
SET @SUFFIX=SELECT MAX(ENQUIRY) FROM ENQUIRY_MASTER;
INSERT INTO ENQUIRY_MASTER VALUES(@PREFIX+@SUFFIX,@POL,@POD,@FPOD,@WEIGHT,@SHIPPER,@CONSIGNEE)

Error is,

Incorrect syntax near the keyword 'SELECT'.
Posted

Please change the line that is underlined below.

SQL
GO
CREATE PROCEDURE SP_ADD_ENQUIRIES(
@POL VARCHAR(50),
@POD VARCHAR(50),
@FPOD VARCHAR(50),
@WEIGHT REAL,
@SHIPPER VARCHAR(150),
@CONSIGNEE VARCHAR(150)
)
AS
DECLARE @SUFFIX INT;
DECLARE @PREFIX VARCHAR(3);
DECLARE @RESULT VARCHAR(MAX);
SET @PREFIX='ENQ';
DECLARE @ENQUIRY_ID VARCHAR(MAX);
IF NOT EXISTS(SELECT * FROM ENQUIRY_MASTER)
INSERT INTO ENQUIRY_MASTER VALUES('ENQ_1',@POL,@POD,@FPOD,@WEIGHT,@SHIPPER,@CONSIGNEE)
ELSE
SELECT @SUFFIX= MAX(ENQUIRY) FROM ENQUIRY_MASTER;
INSERT INTO ENQUIRY_MASTER VALUES(@PREFIX+@SUFFIX,@POL,@POD,@FPOD,@WEIGHT,@SHIPPER,@CONSIGNEE)

 
Share this answer
 
Replace:
SQL
IF NOT EXISTS(SELECT * FROM ENQUIRY_MASTER)

with:
SQL
IF NOT EXISTS(SELECT ENQ_ID FROM ENQUIRY_MASTER WHERE ENQ_ID=@EID)


Replace:
SQL
SET @SUFFIX=SELECT MAX(ENQUIRY) FROM ENQUIRY_MASTER;

with
SQL
SELECT @SUFFIX=MAX(ENQUIRY) FROM ENQUIRY_MASTER;
 
Share this answer
 
Your final code should be:

CREATE PROCEDURE SP_ADD_ENQUIRIES(
@POL VARCHAR(50),
@POD VARCHAR(50),
@FPOD VARCHAR(50),
@WEIGHT REAL,
@SHIPPER VARCHAR(150),
@CONSIGNEE VARCHAR(150)
)
AS
DECLARE @SUFFIX INT;
DECLARE @PREFIX VARCHAR(3);
DECLARE @RESULT VARCHAR(MAX);
SET @PREFIX='ENQ';
DECLARE @ENQUIRY_ID VARCHAR(MAX);
IF NOT EXISTS(SELECT ENQ_ID FROM ENQUIRY_MASTER WHERE ENQ_ID=@EID)
INSERT INTO ENQUIRY_MASTER VALUES('ENQ_1',@POL,@POD,@FPOD,@WEIGHT,@SHIPPER,@CONSIGNEE)
ELSE
SELECT @SUFFIX= MAX(ENQUIRY) FROM ENQUIRY_MASTER;
INSERT INTO ENQUIRY_MASTER VALUES(@PREFIX+@SUFFIX,@POL,@POD,@FPOD,@WEIGHT,@SHIPPER,@CONSIGNEE)
 
Share this answer
 
You forgot the brackets:
SQL
SET @SUFFIX=SELECT MAX(ENQUIRY) FROM ENQUIRY_MASTER;
Becomes
SQL
SET @SUFFIX=(SELECT MAX(ENQUIRY) FROM ENQUIRY_MASTER);
 
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