Mat*_*nto 4 sql sql-server-2005 insert
这是使用前导零选择的代码:
SELECT RIGHT('00000'+ CONVERT(VARCHAR,Asset_No),6)
FROM schemaAsset.SystemDefined
Run Code Online (Sandbox Code Playgroud)
如何使用前导零将值插入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
Run Code Online (Sandbox Code Playgroud)
结果:
Asset_No
--------
000022
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36167 次 |
| 最近记录: |