插入连接视图SQL Server

时间:2017-10-20 19:22:05

标签: sql-server

这是一个关于设计的问题,而不是解决问题。

我创建了三个表

CREATE TABLE [CapInvUser](
    [UserId] [int] IDENTITY(1,1) NOT NULL,
    [Name] [varchar](150) NOT NULL,
    [AreaId] [int] NULL,
    [Account] [varchar](150) NULL,
    [mail] [varchar](150) NULL,
    [UserLevelId] [int] NOT NULL
)

CREATE TABLE [CapInvUserLevel](
    [UserLevelId] [int] IDENTITY(1,1) NOT NULL,
    [Level] [varchar](50) NOT NULL
)

CREATE TABLE [CapInvUserRegistry](
    [UserRegistryId] [int] IDENTITY(1,1) NOT NULL,
    [UserLevelId] int NOT NULL,
    [DateRegistry] DATE NOT NULL,
    [RegistryStatus] VARCHAR(50) NOT NULL,

)

使用一个视图显示第一个表上的所有数据,其中“AreaId”被解析为该表的varchar标识符,UserLevel被解析为该表的varchar值,以及注册表状态的连接最后一个。

现在,当我想注册一个新用户时,我使用单独的查询插入所有三个表,但我觉得我应该有办法同时插入所有这些表。

我考虑过使用存储过程进行插入,但我仍然不知道这是否适用。  我的问题是

  • “是否有更合适的方式来做这件事?”
  • “有没有办法创建一个允许我插入的视图?(不手动传递int值)”

- 这只是表格的表示,而不是真实的表格。 - 我还在学习如何正确使用SQL Server。

感谢您的回答和/或指导。

1 个答案:

答案 0 :(得分:1)

根据我的经验,最常见的方法是编写一个存储过程,以必要的顺序执行所有三个插入以创建FK关系。

这是我明确的建议。