尝试在SQL Server 2012中的存储过程中创建视图

时间:2017-04-28 04:52:50

标签: sql-server tsql stored-procedures view

我不知道并且不知道如何解决这个问题:我正在尝试在SQL Server 2012中的存储过程中创建视图。它显示了一个"错误的语法"错误,帮我解决这个问题,谢谢。

CREATE PROCEDURE Active_products 
AS
BEGIN
    CREATE VIEW Active_Product 
    AS
      SELECT 
          m20.Series_Code AS Series_Code,
          COUNT(m20.Material_Desc) AS Count_of_Active_Products 
      FROM
          material_master m20
      WHERE
          m20.Material_Desc NOT LIKE '%BLK%' 
          OR m20.Material_Desc NOT LIKE '%BLOCKED%' 
          OR m20.Material_Desc NOT LIKE '%BLOCK%'
      GROUP BY 
          m20.Series_Code;

    CREATE VIEW actv_products  
    AS 
        SELECT 
            Series_Code, 
            SUM(Count_of_Active_Products) AS Count_of_Active_Products 
        FROM
            active_product
        GROUP BY 
            Series_Code;

1 个答案:

答案 0 :(得分:0)

我不确定,为什么你需要这样做,但你可以使用sp_executesql来做到这一点。例如:

IF OBJECT_ID('CreateSomeObjects') IS NOT NULL
BEGIN;
    DROP PROCEDURE CreateSomeObjects
END;

GO

CREATE PROCEDURE CreateSomeObjects
AS
BEGIN;

    EXEC sp_executesql N' 
    IF OBJECT_ID(''view01'') IS NOT NULL
    BEGIN;
        DROP VIEW view01;
    END;'

    EXEC sp_executesql N' 
    CREATE VIEW view01
    AS
    SELECT 1 AS [TEST]'



END;

GO 

EXEC CreateSomeObjects

GO

SELECT *
FROM view01;

请注意,我已添加一个检查以删除视图(如果已存在)。