目前,我有一个表,其中包含数据类型为"time(7)“的"time”行。我已经将05:00:00设为默认值,这就是我想要开始计时的地方。对于表格中输入的每一个数据,时间必须“上升”2分钟。我想知道有没有什么办法可以自动递增它,所以它会自动增加2分钟的时间?
我试着研究了Microsoft SQL Server Management Studio (我使用的)中的一些功能,但还没有真正找到一种自动递增它的方法,如果有可能的话。
发布于 2019-09-13 15:27:46
示例:
Create TRIGGER updatetime
ON dbo.TimeTable
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @NewTime time
SELECT Top 1 @NewTime = DATEADD(MINUTE, 2,tbl.tmt_time)
FROM (
SELECT TOP 2 *
FROM [dbo].[TimeTable]
ORDER BY tmt_Id DESC) as tbl
ORDER BY tmt_ID ASC
UPDATE tm
SET tmt_time = @NewTime
FROM [dbo].[TimeTable] tm
INNER JOIN inserted i ON i.tmt_ID = tm.tmt_ID
END
GO您也可以使用lag来代替top 1 top 2 select。此查询还向您的第一个条目添加了2分钟测试。因此,您可能希望使用默认值作为第一行的种子。
参考文献:
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-trigger-transact-sql https://docs.microsoft.com/en-us/sql/t-sql/functions/lag-transact-sql https://docs.microsoft.com/en-us/sql/t-sql/queries/update-transact-sql
https://stackoverflow.com/questions/57906451
复制相似问题