Tenho uma query em sql, na qual possui um if/else. Porem ele persiste em executar o bloco de comando que esta no if e no else também.
Segue abaixo o sql:
ALTER TABLE INTERF_BACKUP_NFE ADD DSC_XML_NFE_TEMP VARBINARY(MAX) NULL
GO
DECLARE @TIPOCAMPO AS CHAR(100)
SET @TIPOCAMPO = (
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'INTERF_BACKUP_NFE' AND COLUMN_NAME = 'DSC_XML_NFE'
)
IF @TIPOCAMPO = 'xml'
BEGIN
UPDATE INTERF_BACKUP_NFE SET DSC_XML_NFE_TEMP = CONVERT(VARBINARY(MAX), DSC_XML_NFE)
END
ELSE
BEGIN
UPDATE INTERF_BACKUP_NFE SET DSC_XML_NFE_TEMP = DSC_XML_NFE
END
ALTER TABLE INTERF_BACKUP_NFE DROP COLUMN DSC_XML_NFE
GO
SP_RENAME 'INTERF_BACKUP_NFE.DSC_XML_NFE_TEMP', 'DSC_XML_NFE', 'COLUMN'
Segue abaixo o sql:
ALTER TABLE INTERF_BACKUP_NFE ADD DSC_XML_NFE_TEMP VARBINARY(MAX) NULL
GO
DECLARE @TIPOCAMPO AS CHAR(100)
SET @TIPOCAMPO = (
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'INTERF_BACKUP_NFE' AND COLUMN_NAME = 'DSC_XML_NFE'
)
IF @TIPOCAMPO = 'xml'
BEGIN
UPDATE INTERF_BACKUP_NFE SET DSC_XML_NFE_TEMP = CONVERT(VARBINARY(MAX), DSC_XML_NFE)
END
ELSE
BEGIN
UPDATE INTERF_BACKUP_NFE SET DSC_XML_NFE_TEMP = DSC_XML_NFE
END
ALTER TABLE INTERF_BACKUP_NFE DROP COLUMN DSC_XML_NFE
GO
SP_RENAME 'INTERF_BACKUP_NFE.DSC_XML_NFE_TEMP', 'DSC_XML_NFE', 'COLUMN'