I am getting Goto Error even i have labeled..
Msg 133, Level 15, State 1, Line 79
A GOTO statement references the label 'ERROR_HANDLER' but the label has not been declared.
Error Handler is displaying check format table at the end it is working fine but as goto is throwing error to error_handler Nodups should not have been printed and created.
Thanks in advance.
What I have tried:
ALTER PROCEDURE USP_FONM_16_FILES
(
@COMMAND NVARCHAR (MAX) ,
@DBNAME NVARCHAR(MAX) ,
@FORMAT_TABLE NVARCHAR (MAX) ,
@FORMAT_NODUPS NVARCHAR (MAX)
)
AS
BEGIN
IF @COMMAND =N'HOMEOWNER'
BEGIN
DECLARE @SRC_HM_DATA_TYPE NVARCHAR(MAX)
SET @SRC_HM_DATA_TYPE=N''+
CONCAT('
BEGIN
IF EXISTS (SELECT [SRC_HM],DATA_TYPE FROM ',@DBNAME,'..',@FORMAT_TABLE,' WHERE [SRC_HM]=''1'' AND DATA_TYPE=''D'')
PRINT ''SRC_HM=1 AND DATA_TYPE = D''
ELSE
GOTO ERROR_HANDLER;
END'
)
END
Begin
DECLARE @ERROR_HANDLER NVARCHAR(MAX)
SET @ERROR_HANDLER=N''+
CONCAT
(
'ERROR_HANDLER:',
'
Print ''check format table '''
)
End
BEGIN
DECLARE @REMOVE_NODUPS NVARCHAR (MAX)
PRINT '-- REMOVE DUPLICATES -- '
SET @REMOVE_NODUPS=N''+
CONCAT(
'IF OBJECT_ID (','''',@FORMAT_NODUPS,'''',',','''','U','''',') IS NOT NULL DROP TABLE ', @DBNAME,'..',@FORMAT_NODUPS
,'
;WITH SAMPLECTE
AS
(
SELECT A.*, ROW_NUMBER () OVER ( PARTITION BY FIRST_NAME, LAST_NAME, ADDRESS, ZIP ORDER BY FIRST_NAME ) AS RNUM
FROM ', @DBNAME,'..',@FORMAT_TABLE,' A
)
SELECT * INTO ', @DBNAME,'..',@FORMAT_NODUPS,'
FROM SAMPLECTE WHERE RNUM=1'
)
END
PRINT @SRC_HM_DATA_TYPE
EXEC (@SRC_HM_DATA_TYPE)
PRINT @REMOVE_NODUPS
EXEC (@REMOVE_NODUPS)
PRINT @ERROR_HANDLER
EXEC (@ERROR_HANDLER)
END
BEGIN
IF EXISTS (SELECT [SRC_HM],DATA_TYPE FROM prac..test_format1 WHERE [SRC_HM]='1' AND DATA_TYPE='D')
PRINT 'SRC_HM=1 AND DATA_TYPE = D'
ELSE
GOTO ERROR_HANDLER;
END
Msg 133, Level 15, State 1, Line 77
A GOTO statement references the label 'ERROR_HANDLER' but the label has not been declared.
IF OBJECT_ID ('Test_format_nodups','U') IS NOT NULL DROP TABLE prac..Test_format_nodups
;WITH SAMPLECTE
AS
(
SELECT A.*, ROW_NUMBER () OVER ( PARTITION BY FIRST_NAME, LAST_NAME, ADDRESS, ZIP ORDER BY FIRST_NAME ) AS RNUM
FROM prac..test_format1 A
)
SELECT * INTO prac..Test_format_nodups
FROM SAMPLECTE WHERE RNUM=1
(5 rows affected)
ERROR_HANDLER:
Print 'check format table '
check format table