我刚开始用SQL前几天一直在试图建立触发自动填充一些列,比如当输入employeeTimes(clockIn,CLOCKOUT,timeIntimeOut数据下面的那些)(类似于这里没有列出的)。对不起,如果列/行名称令人困惑 - 请让我知道我会改变它。 下面是我的触发器,下面是错误。SQL服务器也能收到错误消息触发
ALTER TRIGGER dailyHoursWorked
ON employeeTimes
AFTER INSERT, DELETE, UPDATE
AS
DECLARE @time INT
DECLARE @employeeID INT
DECLARE @error VARCHAR(30)
SET @time = (SELECT DATEDIFF(hh,clockIn,clockOut) FROM employeeTimes)
SET @employeeID = (SELECT employeeID FROM inserted)
SET @error = ('Please enter an employeeID')
BEGIN
UPDATE employeeTimes
SET [email protected]
Where [email protected]
END
我得到的错误如下:
子查询返回多个值。当子查询遵循=,!=,<,< =,>,> =或当子查询用作表达式时,这是不允许的。
谢谢你,我会考虑它。这很容易:-)。 – kevoid
不是一个屁股..但它不是“更容易”的方式,它是正确的方式。触发器是基于集合的。如果你(OP)没有听说过“set base”这个术语,那么我会每天花2个小时在一个星期内搜索一下“基于sql server set”的搜索结果。 – granadaCoder