【问题标题】:How to create view in SQL procedure如何在 SQL 过程中创建视图
【发布时间】:2021-05-16 10:15:41
【问题描述】:

我正在尝试做类似的事情

CREATE PROCEDURE [dbo].[AA_Hours_Union] 
AS
    IF OBJECT_ID('[dbo].[aa_Hours]', 'V') IS NOT NULL 
         DROP VIEW [dbo].[aa_Hours];

    CREATE VIEW .....

但我得到一个错误,创建视图必须是第一行。那么如何在 SQL 过程中创建一个视图,该过程总是会删除旧视图并从头开始创建?

【问题讨论】:

  • 为什么要在存储过程中做这些活动?
  • Why should I "tag my RDBMS"? - 请添加标签以指定您使用的是 mysqlpostgresqlsql-serveroracle 还是 db2 - 或其他完全不同的东西。跨度>
  • 我能想到的唯一可能的原因是如果您不断更改视图的定义?如果是这样,我会质疑您的方法是否正确。
  • 我想创建视图以将其连接到我在 Power BI 中的模型,这可能真的不是最佳实践...

标签: sql view procedure


【解决方案1】:

这确实很痛苦,但您可以使用动态 SQL 来做到这一点:

CREATE PROCEDURE [dbo].[AA_Hours_Union] 
AS
BGIN
    IF OBJECT_ID('[dbo].[aa_Hours]', 'V') IS NOT NULL 
    BEGIN
         DROP VIEW [dbo].[aa_Hours];
    END;

    EXEC SP_EXECUTESQL N'CREATE VIEW .....';
END;

【讨论】:

    猜你喜欢
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多