使用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),
您不能将子查询用于计算列。您可以为此目的编写触发器。
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