SQL SERVER先判断视图是否存在然后再创建视图的语句
如果我们的语句为:
IFNOTEXISTS(SELECT1FROMsys.viewsWHEREname='Report_IndividualTicket') BEGIN createviewReport_IndividualTicket as SELECTTicket.TicketNumber,Ticket.TicketID, GisProcess.StageName, Content.DtReceived,Content.ContentText FROM (GisProcessINNERJOINTicket ONGisProcess.TicketID=Ticket.TicketID) INNERJOINContent ONTicket.ContentID=Content.ContentID END
会提示以下错误:
Msg156,Level15,State1,Line4
Incorrectsyntaxnearthekeyword'view'.
出现这个错误的原因是:createview这一句必须是批处理中的第一句。
所以可以将该语句修改为:
IFEXISTS(SELECT1FROMsys.viewsWHEREname='Report_IndividualTicket') DROPVIEWReport_IndividualTicket GO createviewReport_IndividualTicket as SELECTTicket.TicketNumber,Ticket.TicketID, GisProcess.StageName, Content.DtReceived,Content.ContentText FROM (GisProcessINNERJOINTicket ONGisProcess.TicketID=Ticket.TicketID) INNERJOINContent ONTicket.ContentID=Content.ContentID GO