试试这个逻辑,你的一点关闭;
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将工作 –