我正在尝试添加一个自动增量主键,带有ZEROFILL,并且最大长度为六个字符。
所以输出如下:
所以输出如下:
000001
000002 etc...
但我真的很难做到这一点,找不到答案。如何在SQL Server Management Studio中设置此列类型?
谢谢
000001
000002 etc...
但我真的很难做到这一点,找不到答案。如何在SQL Server Management Studio中设置此列类型?
谢谢
在SQL Server中,您不能使用整数字段来实现此功能(使用Varchar也不建议)。
让SQL Server将该字段存储为Identity,然后(假设这是用于显示),在选择数据时格式化它,如下所示:
SELECT RIGHT('000000' + CONVERT(VARCHAR(6),ID), 6) FROM Table
1
和000001
是相同的。SELECT FORMAT(2, N'000000')
--OR
SELECT FORMAT(2, CAST(REPLICATE(0, 6) AS NVARCHAR(6)))
https://learn.microsoft.com/en-us/sql/t-sql/functions/format-transact-sql?view=sql-server-ver15
CREATE FUNCTION MyZeroFill (
@N BIGINT,
@D SMALLINT
) RETURNS VARCHAR(50) AS
BEGIN
RETURN RIGHT('0000000000000000000000000000000000000000000000'+CAST
(@N AS VARCHAR),@D)
END