自动使用其他表格中的值填充列

时间:2019-02-18 22:06:19

标签: sql sql-server ssms

使用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),

1 个答案:

答案 0 :(得分: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