首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在SQL server中自动递增数据类型"time(7)“?

是否可以在SQL server中自动递增数据类型"time(7)“?
EN

Stack Overflow用户
提问于 2019-09-12 20:11:45
回答 1查看 137关注 0票数 0

目前,我有一个表,其中包含数据类型为"time(7)“的"time”行。我已经将05:00:00设为默认值,这就是我想要开始计时的地方。对于表格中输入的每一个数据,时间必须“上升”2分钟。我想知道有没有什么办法可以自动递增它,所以它会自动增加2分钟的时间?

我试着研究了Microsoft SQL Server Management Studio (我使用的)中的一些功能,但还没有真正找到一种自动递增它的方法,如果有可能的话。

EN

回答 1

Stack Overflow用户

发布于 2019-09-13 15:27:46

  1. 创建一个触发器,该触发器在插入时更新插入值
  2. Get previous entry并将2分钟添加到新行

示例:

代码语言:javascript
运行
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57906451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档