这是选择前导零的代码:
SELECT RIGHT('00000'+ CONVERT(VARCHAR,Asset_No),6)
FROM schemaAsset.SystemDefined
如何向带有前导零的列 Asset_no 插入值?
示例是我只在 Asset_no 列中插入“1”,但在代码中,它会插入“000001”。而且当我插入两个数字(如 26)时,它会插入为“000026”。长度不变。这在 SQL Server 中可能吗?
最佳答案
一种方法是使用 INSTEAD OF
扳机。
USE tempdb;
GO
CREATE TABLE dbo.whatever
(
Asset_No VARCHAR(6)
);
GO
CREATE TRIGGER dbo.fix_whatever
ON dbo.whatever
INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON;
INSERT dbo.whatever(Asset_No /*, other columns */)
SELECT RIGHT('000000' + CONVERT(VARCHAR(6), Asset_No), 6)
/*, other columns */
FROM inserted;
END
GO
INSERT dbo.whatever(Asset_No) SELECT '22';
GO
SELECT Asset_No FROM dbo.whatever;
GO
结果:
Asset_No
--------
000022
关于sql - 如何在 SQL Server 中插入前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15237100/