我正在创建发票表,并且我希望ID以零开头,因为我最终会将发票#与varchar
串联在一起,该发票将保持不变。例如,这是到目前为止的表格:
create table MCE_IDTest_av
(
invoice_id_num int not null Identity(100076,1) primary key,
invoice_id as ('MCE' + CONVERT(varchar, invoice_id_num)),
);
invoice_id将列为“ MCE100077”,“ MCE100078”等。但是,我希望它是“ MCE0010076” 。是否存在以零开头的SQL数字数据类型?
答案 0 :(得分:1)
这不是填充前导0的数据类型。这类事情必须使用字符数据类型来完成。但是您可以轻松完成此操作。
还请确保始终指定varchar数据的长度。 https://sqlblog.org/2009/10/09/bad-habits-to-kick-declaring-varchar-without-length
create table MCE_IDTest_av(
invoice_id_num int not null Identity(100076,1) primary key,
invoice_id as ('MCE' + right('00000000' + CONVERT(varchar(10), invoice_id_num), 7)),
);