SQL 服务器,添加字段和视图
SQL Server, add field and view
- 创建一个table
CREATE TABLE [dbo].[tb_tes_test](
[tes_id] [int] IDENTITY(1,1) NOT NULL,
[tes_name] [varchar](50) NULL,
[tes_date] [datetime] NULL,
CONSTRAINT [PK_tb_tit_titti] PRIMARY KEY CLUSTERED
(
[tes_id] ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
- 添加记录到table
tes_id tes_name tes_date
1 tiz 2019-11-28 00:00:00.000
2 cla 2019-10-28 00:00:00.000
3 mar 2019-09-28 00:00:00.000
- 为 table
创建视图
CREATE VIEW [dbo].[vw_test]
AS
SELECT dbo.tb_tes_test.*
FROM dbo.tb_tes_test
- 将新字段添加到两个现有字段之间的table
- 为字段插入值
tes_id tes_name tes_candy tes_date 1
1 tiz com1 2019-11-28 00:00:00.000
2 cla com2 2019-10-28 00:00:00.000
3 mar com3 2019-09-28 00:00:00.000
- 运行 带有 select * 来自 vw_test
的视图
结果是:
tes_id tes_name tes_date
1 tiz com1
2 cla com2
3 mar com3
**我知道我必须 运行 更改视图才能更新它,但如果我忘记这样做怎么办?
是否有自动更新视图的选项?**
当新列添加到 table 时,您无法自动更新视图。视图是一种存储的查询,可访问一个或多个 table 或视图。
由于视图通常用于安全目的,当您不希望用户访问 table 上的所有列时(例如隐藏员工工资等)。拥有自动添加新列的视图将不是一个好主意。恐怕如果您想将列添加到视图中,那么您需要做出有意识的决定。
如果您在视图定义中添加 SCHEMABINDING 构造,那么当您尝试将新列添加到 table 时,由于绑定到 table 来自看法。这将提醒您同时更新视图。
- 创建一个table
CREATE TABLE [dbo].[tb_tes_test](
[tes_id] [int] IDENTITY(1,1) NOT NULL,
[tes_name] [varchar](50) NULL,
[tes_date] [datetime] NULL,
CONSTRAINT [PK_tb_tit_titti] PRIMARY KEY CLUSTERED
(
[tes_id] ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
- 添加记录到table
tes_id tes_name tes_date
1 tiz 2019-11-28 00:00:00.000
2 cla 2019-10-28 00:00:00.000
3 mar 2019-09-28 00:00:00.000
- 为 table
创建视图CREATE VIEW [dbo].[vw_test]
AS
SELECT dbo.tb_tes_test.*
FROM dbo.tb_tes_test
- 将新字段添加到两个现有字段之间的table - 为字段插入值
tes_id tes_name tes_candy tes_date 1
1 tiz com1 2019-11-28 00:00:00.000
2 cla com2 2019-10-28 00:00:00.000
3 mar com3 2019-09-28 00:00:00.000
- 运行 带有 select * 来自 vw_test
的视图结果是:
tes_id tes_name tes_date
1 tiz com1
2 cla com2
3 mar com3
**我知道我必须 运行 更改视图才能更新它,但如果我忘记这样做怎么办?
是否有自动更新视图的选项?**
当新列添加到 table 时,您无法自动更新视图。视图是一种存储的查询,可访问一个或多个 table 或视图。
由于视图通常用于安全目的,当您不希望用户访问 table 上的所有列时(例如隐藏员工工资等)。拥有自动添加新列的视图将不是一个好主意。恐怕如果您想将列添加到视图中,那么您需要做出有意识的决定。
如果您在视图定义中添加 SCHEMABINDING 构造,那么当您尝试将新列添加到 table 时,由于绑定到 table 来自看法。这将提醒您同时更新视图。