SQL Server IDENTITY列

pik*_*ikk 1 sql sql-server sql-server-2008

如何修改此命令以使标识列具有五位数字整数,如00000并从00001开始?

CREATE TABLE [dbo].[Company]
(
  [CompanyId] [bigint] IDENTITY(1,1) NOT NULL,
  [Name] [nvarchar](200) NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

And*_*bel 6

整数本身没有任何前导0.将整数转换为字符串进行显示时,处理格式问题.

如果你真的需要能够在SQL之外提供这样的字符串,你可以使用计算列来实现:

CREATE TABLE [dbo].[Company]( 
  [CompanyId] [bigint] IDENTITY(1,1) NOT NULL,
  [FormattedCompanyId] AS RIGHT('0000'+ CONVERT(VARCHAR,Num),5),
  [Name] nvarchar NOT NULL,
Run Code Online (Sandbox Code Playgroud)

我自己永远不会使用该解决方案,格式化不属于数据存储.

  • 关键短语是"**如果**你需要能够从SQL中提供这样的字符串"......这听起来更像是表示层的关注点. (3认同)