SQL SERVER先判断视图是否存在然后再创建视图的语句,sqlserver

网络整理 - 08-17

如果我们的语句为:

IF NOT EXISTS(SELECT 1 FROM sys.views WHERE) 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) 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


sql server怎判断视图是否存在

SELECT count(*) as cut FROM sysviews WHERE object_id = '[dbo].[视图名]'
if fieldByName('cut')>0 then
//存在
else
//不存在
 

sql server 判断视图是否存在

先判断下列语句是否返回结果,然后再判断.

SELECT * FROM DBO.SYSOBJECTS B WHERE B.XTYPE = 'V' AND B.NAME = 'A'