标签: sql-view

在一个 SQL 文件中创建多个视图

我正在尝试创建一个安装脚本来一次安装多个视图。我尝试了通过网络找到的一些建议,但没有成功。该脚本将安装 6 个视图和一个索引。

USE [DB_NAme]
GO
SET XACT_ABORT ON
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
Run Code Online (Sandbox Code Playgroud)

在脚本顶部

我尝试过的事情:

BEGIN TRANSACTION
  CREATE VIEW [schema].[View_Name]
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)

错误,因为“CREATE VIEW”必须是查询批中的第一个语句。

BEGIN TRANSACTION
    BEGIN TRY
      CREATE VIEW [schema].[View_Name]
    END TRY
    BEGIN CATCH
      ERR CODE
    END CATCH
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)

还有一些其他的变化。

寻找一种在一个 .sql 文件中创建多个视图的方法:

检查并删除/创建索引检查并删除视图创建视图.. 其中 7 个

sql-server ddl transactions sql-view

2
推荐指数
1
解决办法
9965
查看次数

将物化视图更改为常规视图

出于性能原因,我的数据库中有一个物化视图。环境的约束已经改变,现在我需要使更新出现得更快,视图本身的性能不再那么重要。如何将物化视图更改为常规视图?寻找类似的东西:

ALTER MATERIALIZED VIEW viewname TO VIEW
Run Code Online (Sandbox Code Playgroud)

postgresql materialized-views sql-view

2
推荐指数
1
解决办法
2013
查看次数

MySQL表视图限制

MySQL 的SQL视图功能是否有任何限制?

例:您可以使用"JOIN"命令创建表格视图吗?

mysql sql sql-view

1
推荐指数
1
解决办法
2682
查看次数

使用存储过程创建视图时出错

我有以下存储过程创建一个视图:

ALTER PROC Proc_Guards_By_Client
(
    @client_number INT,
    @client_name   NVARCHAR(16)
)
AS
 BEGIN
   IF EXISTS(select * FROM sys.views where name = 'vwGuardsByClients')
   BEGIN
    EXEC ('CREATE VIEW vwGuardsByClients
    AS
    SELECT TOP 1000 
      cgt.[guard_id],
      sg.first_name,
      sg.last_name,
      sg.ammunition_quantity    
      FROM [sws4].[dbo].[client_guard_tracking] cgt
      INNER JOIN CLIENTS c
      ON c.client_number = cgt.client_number
      INNER JOIN security_guard sg
      ON sg.guard_id = cgt.guard_id
      WHERE cgt.client_number = @client_number
      OR c.client_name = @client_name
    ')
    END
    ELSE
    BEGIN
      EXEC ('UPDATE VIEW vwGuardsByClients
      SELECT TOP 1000 
      cgt.[guard_id],
      sg.first_name,
      sg.last_name,
      sg.ammunition_quantity    
      FROM [sws4].[dbo].[client_guard_tracking] cgt
      INNER …
Run Code Online (Sandbox Code Playgroud)

t-sql stored-procedures dynamic-sql sql-server-2008 sql-view

1
推荐指数
1
解决办法
1695
查看次数

如何向视图添加列?

有没有办法在视图中添加新列并更新它们?

列不在任何表中; 我想从表中选择几列,然后添加几个新列并更新它们.

我试图ALTER VIEW添加列,但它给了我一个错误:

无法更改'viewName',因为它不是表格.

sql-server view sql-view

1
推荐指数
1
解决办法
2873
查看次数

如何在 Liquibase 中更改视图

我想更改一个已经存在的视图。Liquibase 中没有像 \changeView 或 \alterView 这样的东西吗?

我已经用 createView 创建了一个视图。我尝试使用谷歌搜索alterview或changeview,但没有任何正确的结果。

liquibase sql-view

1
推荐指数
3
解决办法
7231
查看次数

T-SQL基于条件强制为null值

这是我的观点

 SELECT e.Text AS StatusText,
        a.Created AS [DATE],
        a.Username,
        b.Name AS CustomerName,
        c.Name AS ServiceName,
        d.Message AS DeviationMessage
   FROM dbo.StatusUpdate AS a
        LEFT OUTER JOIN dbo.Customer AS b ON a.CustomerId = b.CustomerID
        LEFT OUTER JOIN dbo.Service AS c ON a.ServiceId = c.ServiceID
        LEFT OUTER JOIN dbo.Deviation AS d ON a.DeviationId = d.DeviationID
        LEFT OUTER JOIN dbo.StatusText AS e ON a.Status = e.ID
Run Code Online (Sandbox Code Playgroud)

我想要做的是:当a.Status(int)是2或3时,我想强制a.Username显示为NULL.我该怎么办呢?

sql t-sql sql-view

1
推荐指数
1
解决办法
954
查看次数

如何更改视图中虚拟列的数据类型?

create or replace view ABC_VIEW(
   VEHICLEID, BRAND,
   MODEL, VEHICLE_TYPE,
   FUEL_TYPE, TRANSMISSION_TYPE,
   GEARBOX, DRIVE_TYPE,
   VEHICLE_NUMBER, PRICE, 
   "TEST Column"
) as 
  select VEHICLEID, BRAND,
         MODEL, VEHICLE_TYPE,
         FUEL_TYPE, TRANSMISSION_TYPE,
         GEARBOX, DRIVE_TYPE,
         VEHICLE_NUMBER, PRICE, 
         '' as "TEST Column" 
    from ABC;
Run Code Online (Sandbox Code Playgroud)

默认情况下"Test Column"创建为Char(1).如何将其更改为Number数据类型?

请帮帮我.谢谢.

sql oracle sql-view

1
推荐指数
1
解决办法
581
查看次数

SQL - 使用多个 CTE 创建视图

我要创建一个视图,其中有 2 个 CTES。这就是我在下面所做的。第一部分很好,但是在“AND”之后事情就不起作用了。感谢您的意见

CREATE VIEW dbo.VW.SPAg
AS With today as 
(SELECT * FROM dbo.Work_Days
 WHERE [Date] = CAST(GETDATE() AS DATE)
)

AND WITH rd as
(SELECT [DATE] AS REP_DATE
 FROM dbo.Link_Days
 WHERE DAY ([DATE]) = 1
)
SELECT wm *,
gr.DATE_ORDINAL AS Goods_Rcvd_Ordinal
gt.DATE_ORDINAL AS Goods_Trnpt_Ordinal
today.DATE

FROM dbo.SPAg sg
INNER JOIN rd
  ON YEAR(sg.Client_Query)= YEAR(rd.REP_DATE)
LEFT JOIN dbo.Work_DAYS gr
ON sg.Goods_Rcvd = gr.[DATE]
LEFT JOIN dbo.Work_DAYS gt
ON sg.Goods_Trnpt = gt.[DATE]
Run Code Online (Sandbox Code Playgroud)

sql sql-view sql-cte

1
推荐指数
1
解决办法
7548
查看次数

How to change a column data type in Oracle View?

I am trying to change a data type of a column in a Oracle View by executing the following statement:

ALTER VIEW <view_name> 
MODIFY (ID VARCHAR2(100));
Run Code Online (Sandbox Code Playgroud)

I get the following error:

Error starting at line : 1 in command -
ALTER VIEW <view_name>
MODIFY (ID VARCHAR2(100))
Error report -
ORA-00922: missing or invalid option
00922. 00000 -  "missing or invalid option"
*Cause:    
*Action:
Run Code Online (Sandbox Code Playgroud)

I referred to the post here. What's the correct way to achieve this? I guess Oracle …

sql oracle sql-view

1
推荐指数
2
解决办法
125
查看次数