【问题标题】:SQL Server identity counterpart problemSQL Server 身份对应问题
【发布时间】:2010-03-21 09:11:08
【问题描述】:

我正在使用 SQL Server,我想在其中使用身份约束

我知道如何以下列方式使用它

create table mytable
(
 c1 int primary key identity(1,1);
)

上面的代码工作正常,但如果我希望标识列的值为 EMP001、EMP002、...而不是 1,2...。

提前致谢, 大师

【问题讨论】:

    标签: sql-server-2005 tsql identity


    【解决方案1】:

    标识列只能是整数。如果您希望它“看起来像”EMP001、EMP002 等,那么这只是一个显示问题而不是存储问题(也就是说,您不需要 store "EMP001", "EMP002"等,只需通过普通标识列将其存储为 1、2、3 并在您的应用程序中显示为“EMP001”、“EMP002”等)

    【讨论】:

    • 谢谢亲爱的支持。我很欣赏你的想法。
    【解决方案2】:

    创建一个这样连接的计算列:

    'EMP' + RIGHT('00' + CAST(c1 AS varchar(3)), 3)

    否则,作为代理键的 IDENTITY 列就是:一个无意义的数字。

    我假设你只会有 999 行,还是在某个地方有另一个序列?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-09
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多