我想使用存储过程创建或更新视图,如下所示:
CREATE PROC Proc_Get_Ready_Weapons
AS
BEGIN
IF EXISTS(select * FROM sys.views where name = 'dbo.vwGetReadyWeapons')
BEGIN
EXEC ('CREATE VIEW dbo.vwGetReadyWeapons ... rest of view')
END
ELSE
BEGIN
EXEC ('CREATE OR REPLACE VIEW dbo.vwGetReadyWeapons ... rest of view')
END
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated'
END
但是得到了这个错误:
第15行,第1行,第1行,第1行 关键字“OR”附近的语法不正确。
警告:没有更新行
答案 0 :(得分:1)
CREATE OR REPLACE
在SQL Server(at least not yet)中无效。
也许你的意思是:
EXEC('ALTER VIEW dbo. ...');
您也没有有效的支票。我想你的意思是:
IF NOT EXISTS
(SELECT 1 FROM sys.views WHERE [object_id] = OBJECT_ID('dbo.vwGetReadyWeapons'))