SQL Server Management Studio ZEROFILL

时间:2013-02-27 13:36:32

标签: sql sql-server-2008 ssms zerofill

我正在尝试使用ZEROFILL添加auto_increment主键,最大值为6。

所以输出:

000001
000002 etc...

然而,我真的很难实现这个目标而无法找到答案。如何在SQL Server Management Studio中设置此列类型?

由于

4 个答案:

答案 0 :(得分:7)

您无法在SQL Server中使用整数字段执行此操作(我也不建议使用Varchar)。

让SQL Server将该字段存储为Identity,然后(假设这是用于显示),在您选择数据时格式化数据:

SELECT RIGHT('000000' + CONVERT(VARCHAR(6),ID), 6) FROM Table

答案 1 :(得分:2)

您无法实现的目标。显示格式在表示层中完成,而不是在数据库中完成。您需要将值与值的表示分开。这两个值1000001是相同的。

如果要返回格式化的内容,则必须将该值作为字符串返回。只需将其转换为字符串,在开头添加一些零,然后保留最左边的 n 字符。

答案 2 :(得分:0)

通过创建功能

CREATE FUNCTION MyZeroFill (
 @N BIGINT,
 @D SMALLINT
 ) RETURNS VARCHAR(50) AS
BEGIN
RETURN RIGHT('0000000000000000000000000000000000000000000000'+CAST
(@N AS VARCHAR),@D)
END

答案 3 :(得分:0)

SELECT FORMAT(2, N'000000')
--OR
SELECT FORMAT(2, CAST(REPLICATE(0, 6) AS NVARCHAR(6)))

https://docs.microsoft.com/en-us/sql/t-sql/functions/format-transact-sql?view=sql-server-ver15