Sql 将id重新设定为00000001,选择时返回00000001而不是1
我已经将一个数据库列重新设定为00000001,但是当我用C#选择它时,它只返回不带零的1。ms sql中不允许前导零吗?您可以执行以下操作Sql 将id重新设定为00000001,选择时返回00000001而不是1,sql,sql-server,Sql,Sql Server,我已经将一个数据库列重新设定为00000001,但是当我用C#选择它时,它只返回不带零的1。ms sql中不允许前导零吗?您可以执行以下操作 SELECT RIGHT('00000000' + CAST(id_field AS nvarchar), 8); 但正如评论所说,自动数值是一个整数。一般来说,数值列不能有前导零,INT就是其中之一。 如果要执行此操作,可以使用RIGHT()函数,如下所示: SELECT YourNumber, RIGHT(CONCAT('00000000', You
SELECT RIGHT('00000000' + CAST(id_field AS nvarchar), 8);
但正如评论所说,自动数值是一个整数。一般来说,数值列不能有前导零,
INT
就是其中之一。
如果要执行此操作,可以使用RIGHT()
函数,如下所示:
SELECT YourNumber, RIGHT(CONCAT('00000000', YourNumber), 8) DesiredResult
FROM
(
VALUES
(1), (2), (100), (190)
) T(YourNumber);
唯一支持标识并因此重新设定种子的列数据类型是数值类型。它们都不保留前导零。如果需要,您需要在演示时添加它们此列的数据类型是什么?它是标识列,INTAn
INT
列或数字列通常不能有前导零。除非您使用的是N/VARCHAR(N)
。我理解,谢谢您,这实际上不起作用,因为00000000
将隐式转换为整数,使运算从它们开始的地方离开<代码>格式(id_字段,'D8')将简洁地完成此操作。谢谢,@MartinSmith1)您应该始终指定N/VARCHAR
的长度。2) 有什么需要转换为NVARCHAR
而不是VARCHAR(10)
?con't've”是什么意思?不能有@DaleK