使用存储过程创建/更新视图

时间:2012-09-17 19:49:40

标签: sql sql-server-2008 tsql

我想使用存储过程创建或更新视图,如下所示:

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”附近的语法不正确。
  警告:没有更新行

1 个答案:

答案 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'))