1. 程式人生 > >SQL SERVER 字段統一補0方法

SQL SERVER 字段統一補0方法

orm prim odi mod identity 數據庫 constrain rain fff

在SQL SERVER 2008R2的[AdventureWorks2008R2]示例數據庫中,看到以下字段統一補0方法。

將CustomerID前面加0轉變為AccountNumber字段。

CREATE TABLE [Sales].[Customer](
[CustomerID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[PersonID] [int] NULL,
[StoreID] [int] NULL,
[TerritoryID] [int] NULL,
[AccountNumber] AS (isnull(‘AW‘+[dbo].[ufnLeadingZeros]([CustomerID]),‘‘)),


[rowguid] [uniqueidentifier] ROWGUIDCOL NOT NULL,
[ModifiedDate] [datetime] NOT NULL,
CONSTRAINT [PK_Customer_CustomerID] PRIMARY KEY CLUSTERED
(
[CustomerID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

=====

Scalar function used by the Sales.Customer table to help set the account number.

---

CREATE FUNCTION [dbo].[ufnLeadingZeros](
@Value int
)
RETURNS varchar(8)
WITH SCHEMABINDING
AS
BEGIN
DECLARE @ReturnValue varchar(8);

SET @ReturnValue = CONVERT(varchar(8), @Value);
SET @ReturnValue = REPLICATE

(‘0‘, 8 - DATALENGTH(@ReturnValue)) + @ReturnValue;

RETURN (@ReturnValue);
END;

SQL SERVER 字段統一補0方法