Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将id重新设定为00000001,选择时返回00000001而不是1_Sql_Sql Server - Fatal编程技术网

Sql 将id重新设定为00000001,选择时返回00000001而不是1

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

我已经将一个数据库列重新设定为00000001,但是当我用C#选择它时,它只返回不带零的1。ms sql中不允许前导零吗?

您可以执行以下操作

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