Sql 用查询结果填充临时表时出错
为什么这个查询单独运行?好的,但是当我尝试将结果放入临时表时,出现了一个错误 工作 不起作用Sql 用查询结果填充临时表时出错,sql,tsql,syntax-error,temp,Sql,Tsql,Syntax Error,Temp,为什么这个查询单独运行?好的,但是当我尝试将结果放入临时表时,出现了一个错误 工作 不起作用 if object_id('tempdb..#ECHO_ORDERS') is not null begin drop table #ECHO_ORDERS SELECT DISTINCT ENCOUNTER_ID = OP.PAT_ENC_CSN_ID ,NOTE_TYPE = OP.PROC_CODE ,CREATE_TIME = OP.ORDER_I
if object_id('tempdb..#ECHO_ORDERS') is not null begin drop table #ECHO_ORDERS
SELECT DISTINCT
ENCOUNTER_ID = OP.PAT_ENC_CSN_ID
,NOTE_TYPE = OP.PROC_CODE
,CREATE_TIME = OP.ORDER_INST
,OP.ORDER_PROC_ID
,EAP.PROC_NAME
INTO #ECHO_ORDERS
FROM PAT_ENC E
INNER JOIN #SER SER ON SER.PROV_ID = E.VISIT_PROV_ID
INNER JOIN ORDER_PROC OP ON OP.PAT_ENC_CSN_ID = E.PAT_ENC_CSN_ID
INNER JOIN CLARITY_EAP EAP ON EAP.PROC_ID = OP.PROC_ID
INNER JOIN EDP_PROC_CAT_INFO EDP ON EDP.PROC_CAT_ID = EAP.PROC_CAT_ID
WHERE (EAP.PROC_NAME LIKE '%ECHO%'
OR EDP.PROC_CAT_NAME LIKE 'ECH%')
AND EDP.PROC_CAT_NAME NOT IN ( 'CHG LABORATORY', 'LAB BLOOD ORDERABLES', 'PR GASTROENTEROLOGY', 'PR INJECTABLE MEDS', 'URINE ORDERABLES')
当我运行不起作用的代码时,我收到关于最后一行代码的错误消息
Msg 102, Level 15, State 1, Line 222
Incorrect syntax near ')'.
如果您正确地格式化了代码,那么很清楚为什么代码不能工作
if object_id('tempdb..#ECHO_ORDERS') is not null
begin
drop table #ECHO_ORDERS
SELECT DISTINCT
ENCOUNTER_ID = OP.PAT_ENC_CSN_ID
,NOTE_TYPE = OP.PROC_CODE
,CREATE_TIME = OP.ORDER_INST
,OP.ORDER_PROC_ID
,EAP.PROC_NAME
INTO #ECHO_ORDERS
FROM PAT_ENC E
INNER JOIN #SER SER ON SER.PROV_ID = E.VISIT_PROV_ID
INNER JOIN ORDER_PROC OP ON OP.PAT_ENC_CSN_ID = E.PAT_ENC_CSN_ID
INNER JOIN CLARITY_EAP EAP ON EAP.PROC_ID = OP.PROC_ID
INNER JOIN EDP_PROC_CAT_INFO EDP ON EDP.PROC_CAT_ID = EAP.PROC_CAT_ID
WHERE (EAP.PROC_NAME LIKE '%ECHO%' OR EDP.PROC_CAT_NAME LIKE 'ECH%')
AND EDP.PROC_CAT_NAME NOT IN (
'CHG LABORATORY', 'LAB BLOOD ORDERABLES', 'PR GASTROENTEROLOGY', 'PR INJECTABLE MEDS', 'URINE ORDERABLES'
)
您有
BEGIN
和noEND
可能是因为您有一个BEGIN
和noEND
?还是你没有向我们展示更多的代码?我同意Tab Alleman的观点。Sql Server需要一个结尾
——如果右括号是批处理的结尾,这正是我所期望的错误消息。您是正确的。如果对象id('tempdb..ECHO_ORDERS')不为空,则开始删除表#ECHO_ORDERS end
if object_id('tempdb..#ECHO_ORDERS') is not null
begin
drop table #ECHO_ORDERS
SELECT DISTINCT
ENCOUNTER_ID = OP.PAT_ENC_CSN_ID
,NOTE_TYPE = OP.PROC_CODE
,CREATE_TIME = OP.ORDER_INST
,OP.ORDER_PROC_ID
,EAP.PROC_NAME
INTO #ECHO_ORDERS
FROM PAT_ENC E
INNER JOIN #SER SER ON SER.PROV_ID = E.VISIT_PROV_ID
INNER JOIN ORDER_PROC OP ON OP.PAT_ENC_CSN_ID = E.PAT_ENC_CSN_ID
INNER JOIN CLARITY_EAP EAP ON EAP.PROC_ID = OP.PROC_ID
INNER JOIN EDP_PROC_CAT_INFO EDP ON EDP.PROC_CAT_ID = EAP.PROC_CAT_ID
WHERE (EAP.PROC_NAME LIKE '%ECHO%' OR EDP.PROC_CAT_NAME LIKE 'ECH%')
AND EDP.PROC_CAT_NAME NOT IN (
'CHG LABORATORY', 'LAB BLOOD ORDERABLES', 'PR GASTROENTEROLOGY', 'PR INJECTABLE MEDS', 'URINE ORDERABLES'
)