我不知道并且不知道如何解决这个问题:我正在尝试在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;
答案 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;
请注意,我已添加一个检查以删除视图(如果已存在)。