使用另一个表中的值自动填充列

问题描述 投票:1回答:1

使用SQL Management Studio,我有两个表,第一个表包含有关每个运算符的信息。第二个表包含数据输入。

第一个表格将包含UserID,例如“Ollie”及其相应的小时数,例如8.当数据输入到第二个表时,运算符名称为“Ollie”,我需要在第二个表中的一个字段自动填充为“8”。

以下是第二张表中的表格数据,以及我所追求的内容的粗略显示。

CREATE TABLE [dbo].[tblTime](
    [RecordID] [int] IDENTITY(1,1) NOT NULL,
    [Operator] [nvarchar](50) NOT NULL,
    [Timein] [decimal](10, 4) NOT NULL,
    [UserBreak] [decimal](10, 4) NOT NULL,
    [Timeout] [decimal](10, 4) NOT NULL,
    [TotalTime]  AS (([Timeout]-[Timein])-[Userbreak]),
    [OperatorHours] AS (SELECT OperatorHours FROM tblUser t WHERE t.UserID = Operator),
sql sql-server ssms
1个回答
0
投票

您不能将子查询用于计算列。您可以为此目的编写触发器。

CREATE TRIGGER TriggerExample
ON TblTime
BEFORE INSERT, UPDATE
AS 
 Declare @operH int;
 SELECT @operH = OperatorHours FROM tblUser t WHERE t.UserID = inserted.operator;
 inserted.OperatorHours = @operH;
GO
© www.soinside.com 2019 - 2024. All rights reserved.