SQL Server计算列

Cal*_*ass -1 sql-server calculated-columns

在我的数据库中,我有一个基于ID字段的计算列.它的公式是这样的:

('Q'+right('00000'+CONVERT([varchar],[EnquiryID],(0)),(6)))
Run Code Online (Sandbox Code Playgroud)

这意味着它将前置0到6位数.例如,如果我的ID为5,那么它将是Q000005.如果它的100它将是Q000100.

我注意到我的ID在几周之后已经达到了4000.所以我的计算列看起来像Q004000.

我的问题是,一旦它说到Q999999.它会再次从1开始还是自动添加另一个0?那么它会回到Q000001还是Q1000000?

mar*_*c_s 5

让我们使用我们的脑细胞并对其进行逻辑分析:

  • 你的EnquiryID价值变成1'000'000 - 所以你的CONVERT(varchar, EnquiryID, 0) 回报1000000
  • 接下来你用五个零前缀,这给你: 000001000000
  • 现在你采取六个最右边的字符,它们是: 000000
  • 并且你在前面Q给你一个结果Q000000

所以我猜你最好丢弃那个计算列并用更多数字重新创建它!:-)