【问题标题】:SQL Server insert a value from a list of valuesSQL Server 从值列表中插入一个值
【发布时间】:2014-04-16 15:09:41
【问题描述】:

我进行了广泛的搜索,但似乎找不到任何东西,不确定这是否是我的搜索词。

无论哪种方式,我想要做的是获取 SQL Server 2012 的触发器,以使用旋转值更新传入记录中的列。例如,“Assigned”列在第一条记录上填充了“Josh”,在第二条记录上填充了“Joe”,在第三条记录上填充了“James”,然后在第 4 条记录插入时再次从头开始。

对于此解决方案的任何帮助将不胜感激。

【问题讨论】:

  • 这是您的实际问题还是出于问题的目的您简化了它?无论哪种方式,可能都需要更多上下文才能让您找到答案
  • 您是在寻找纯旋转还是伪随机旋转?
  • Tanner,这是我需要解决的实际问题。我目前有一个运行 MSSQL 后端的文档管理系统。当新文档到达系统时,需要将它们“分配”给用户进行处理。 EDM 使用 MSSQL 表中的列来了解将其分配给谁。我正在尝试创建一个触发器,该触发器将在 7 名员工的列表中进行轮换,并在他们进入时将其中一名分配给每个新文档(数据库记录)。

标签: sql-server triggers insert


【解决方案1】:

简单的答案是拥有一个存储要插入的下一项的值的表。然后让您的触发器包含在执行插入后读取和更新该值的逻辑。不过,您可能必须考虑并发和锁定才能使其正常工作。

【讨论】:

    【解决方案2】:

    您可以使用自动递增的列(基于序列)并根据modulo 3 的结果计算分配的列。

    ALTER TABLE dbo.MyTable
    ADD COLUMN Assigned = 
    CASE IdColumn % 3
        WHEN 0 THEN 'James'
        WHEN 1 THEN 'Josh'
        WHEN 2 THEN 'Joe'
    END    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 2015-08-08
      相关资源
      最近更新 更多