如何修改此命令以使标识列具有五位数字整数,如00000并从00001开始?
CREATE TABLE [dbo].[Company]
(
[CompanyId] [bigint] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](200) NOT NULL
)
答案 0 :(得分: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,
我自己永远不会使用该解决方案,格式化不属于数据存储。
答案 1 :(得分:0)
您需要自己添加前导零。作为解决方案,您可以添加另一个名为“formatedID”的colomn,并使用“插入触发器”更新它,其中包含标识列中的值,并使用您想要的前导零进行格式化。
示例:
CREATE TABLE [dbo].[Company]
(
[CompanyId] [bigint] IDENTITY(1,1) NOT NULL,
[FormattedID] [VARCHAR(20)],
[Name] [nvarchar](200) NOT NULL
)
CREATE TRIGGER ON [dbo].[Company]
FOR INSERT
AS
BEGIN
UPDATE [dbo].[Company]
FROM inserted
SET FormattedID = RIGHT('0000'+ CONVERT(VARCHAR, [dbo].[Company].CompanyId),5)
WHERE dbo.Company.CompanyId = inserted.CompanyId
END