試試這個邏輯,你的一點關閉;
IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE object_id= object_id(N'[dbo].[ViewName]') AND OBJECTPROPERTY(object_id, N'IsView') = 1)
我說實話,我總是放棄並重新創建,以確保您運行的是最新版本的視圖,像這樣;
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE object_id= object_id(N'[dbo].[ViewName]') AND OBJECTPROPERTY(object_id, N'IsView') = 1)
BEGIN
DROP VIEW [dbo].ViewName
END
GO
CREATE VIEW ViewName
AS
SELECT
是的,所以檢查您要使用動態SQL的評論;
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[viewName]') AND OBJECTPROPERTY(object_id, N'IsView') = 1)
BEGIN
DECLARE @sql nvarchar(MAX)
--SELECT 'Do this mofo'
SET @sql = N'CREATE VIEW [dbo].[viewName]
AS
SELECT COUNT(1) FieldName FROM sys.objects'
EXEC sp_executesql @sql
END
GO
輸入(N'U')'正在檢查表格而不是視圖。修復和動態SQL將工作 –