视频中的IF EXIST Drop Table导致关键字"IF"附近的语法不正确.信息

Kob*_*kie 0 sql t-sql sql-server

我视图中的以下代码产生错误消息关键字'IF'附近的语法错误

ALTER VIEW [dbo].[IDW_vwGetProductOutPut] 
AS  
IF EXISTS
( SELECT * FROM tempdb.dbo.sysobjects 
  WHERE ID = OBJECT_ID(N'tempdb..#TempPackaging')) 
BEGIN
    DROP TABLE #TempPackaging 
END  . . . . . .     

--code to create temp table goes here . .  and so on
Run Code Online (Sandbox Code Playgroud)

我该如何编码呢?

Cod*_*ked 6

一个视图只能包含SELECT语句,你拥有的更像是一个存储过程.

CREATE PROC [dbo].[IDW_spGetProductOutPut] 
AS  
IF EXISTS
( SELECT * FROM tempdb.dbo.sysobjects 
  WHERE ID = OBJECT_ID(N'tempdb..#TempPackaging')) 
BEGIN
    DROP TABLE #TempPackaging 
END  . . . . . .     

--code to create temp table goes here . .  and so on
Run Code Online (Sandbox Code Playgroud)

  • 你可以简化你的if:IF OBJECT_ID('tempdb ..#TempPackaging')IS NOT NULL BEGIN ..... END (2认同)