我如何修改这个命令,以便有一个标识列,其中有五个数字整数,如00000,并从00001开始?
CREATE TABLE [dbo].[Company]
(
[CompanyId] [bigint] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](200) NOT NULL
)
整数本身没有前导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,
我自己永远不会使用这个解决方案,格式不属于数据存储。
您需要自己添加前导零。作为一种解决方案,您可以添加一个名为"formatatedid"的其他列,并使用"插入后触发器"更新它,其中包含标识列的值,并使用您想要的前导零进行格式化。
的例子:
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