Sql server 在SQL Server的联接视图中插入
这是一个关于设计而不是解决问题的问题 我创建了三个这样的表Sql server 在SQL Server的联接视图中插入,sql-server,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
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值)”
感谢您的回答和/或指导。根据我的经验,最常用的方法是编写一个存储过程,按照创建FK关系所需的顺序执行所有三个插入
这将是我明确的建议。
而不是视图中的触发器
?我想这可能是答案。但我不确定它是否比使用存储过程好。