0

次のようなストアド プロシージャを使用してビューを作成または更新します。

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

しかし、このエラーが発生します:

メッセージ 156、レベル 15、状態 1、行 1
キーワード「OR」付近の構文が正しくありません。
警告: 行は更新されませんでした

4

1 に答える 1

1

CREATE OR REPLACEは SQL Server では有効ではありません (少なくともまだ)。

おそらくあなたは次のことを意味しました:

EXEC('ALTER VIEW dbo. ...');

また、有効な小切手もありません。私はあなたが意味したと思います:

IF NOT EXISTS 
  (SELECT 1 FROM sys.views WHERE [object_id] = OBJECT_ID('dbo.vwGetReadyWeapons'))
于 2012-09-17T19:52:21.890 に答える