如果我們的語句為:
IF NOT EXISTS(SELECT 1 FROM sys.views WHERE name='Report_IndividualTicket') BEGIN create view Report_IndividualTicket as SELECT Ticket.TicketNumber, Ticket.TicketID, GisProcess.StageName, Content.DtReceived, Content.ContentText FROM (GisProcess INNER JOIN Ticket ON GisProcess.TicketID=Ticket.TicketID) INNER JOIN Content ON Ticket.ContentID=Content.ContentID END
會提示以下錯誤:
Msg 156, Level 15, State 1, Line 4
Incorrect syntax near the keyword 'view'.
出現這個錯誤的原因是:create view 這一句必須是批處理中的第一句。
所以可以將該語句修改為:
IF EXISTS(SELECT 1 FROM sys.views WHERE name='Report_IndividualTicket') DROP VIEW Report_IndividualTicket GO create view Report_IndividualTicket as SELECT Ticket.TicketNumber, Ticket.TicketID, GisProcess.StageName, Content.DtReceived, Content.ContentText FROM (GisProcess INNER JOIN Ticket ON GisProcess.TicketID=Ticket.TicketID) INNER JOIN Content ON Ticket.ContentID=Content.ContentID GO
SELECT count(*) as cut FROM sysviews WHERE object_id = '[dbo].[視圖名]'
if fieldByName('cut')>0 then
//存在
else
//不存在
先判斷下列語句是否返回結果,然後再判斷.
SELECT * FROM DBO.SYSOBJECTS B WHERE B.XTYPE = 'V' AND B.NAME = 'A'