我正在尝试检查SQL Server视图是否存在以及它是否存在,创建一个包含动态脚本的视图,然后对其进行更改。
我使用以下脚本
IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[test]') AND OBJECTPROPERTY(id,N'IsView') = 1)
BEGIN
EXEC dbo.sp_executesql @statement = N' CREATE VIEW [dbo].[test] AS '
END
GO
ALTER VIEW [dbo].[test]
---
---
以上脚本会抛出此错误
Msg 102,Level 15,State 1,Procedure test,Line 1 ' AS'附近的语法不正确。
我可以知道正确的方法吗?
答案 0 :(得分:3)
CREATE
声明不完整。您可以通过将其编辑为以下内容来创建该过程。
CREATE VIEW [dbo].[test] AS SELECT 1 'foo'
创建后,您可以继续改变它。
编辑:完全转义它将如下所示:
EXEC dbo.sp_executesql @statement = N' CREATE VIEW [dbo].[test1] AS SELECT 1 ''foo'' '
答案 1 :(得分:0)
您的代码中没有实际的视图定义。话虽如此,为什么不放弃视图确实,然后您的代码可以始终创建视图而不是尝试ALTER
?