2017-07-16 60 views
0

我的代碼(PROYECT_A A00001)有沒有辦法做到這一點,不重複?

有3個表(段SE00001,LABLE LA00001,強ST00001),涉及到一個項目,有可能從這些表中重複代碼,但它們屬於處理項目只有一個項目

有沒有辦法不重複字段?

CREATE TABLE [dbo].[PROYECT_A](
    [PROYECT_A] [int] IDENTITY(1,1) NOT NULL, 
    [CODE_A] AS ('A'+right('00000'+CONVERT([varchar],[PROYECT_A],(0)),(5))), 
    [STATUS] [datetime] NOT NULL, 
    [CREATION_DATE] [datetime] NOT NULL, 
CONSTRAINT [PK_RR] PRIMARY KEY CLUSTERED 
(
    [CODE_A] ASC 
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] 
) ON [PRIMARY] 
END 
GO 

CREATE TABLE [dbo].[SEGMENT](
    [ID_SEGMENT] [int] IDENTITY(1,1) NOT NULL, 
    [CODE_SE] AS ('SE'+right('00000'+CONVERT([varchar],[ID_SEGMENT],(0)),(5))), 
    [NAME] [varchar](20), 
    [POWW] [varchar](20), 
    [SQWE] [varchar](20), 
    [DATESTART] [datetime] NOT NULL, 
    [DATESTART] [datetime] NOT NULL 
    [CODE_A] [varchar](20) 
GO 


CREATE TABLE [dbo].[LABLE](
    [ID_LABLE] [int] IDENTITY(1,1) NOT NULL, 
    [CODE_LA] AS ('LA'+right('00000'+CONVERT([varchar],[ID_LABLE],(0)),(5))), 
    [NAME] [varchar](20), 
    [POWW] [varchar](20), 
    [SQWE] [varchar](20), 
    [DATESTART] [datetime] NOT NULL, 
    [DATESTART] [datetime] NOT NULL 
    [CODE_A] [varchar](20) 
GO 

CREATE TABLE [dbo].[STRONG](
    [ID_STRONG] [int] IDENTITY(1,1) NOT NULL, 
    [CODE_ST] AS ('ST'+right('00000'+CONVERT([varchar],[ID_STRONG],(0)),(5))), 
    [NAME] [varchar](20), 
    [POWW] [varchar](20), 
    [SQWE] [varchar](20), 
    [DATESTART] [datetime] NOT NULL, 
    [DATESTART] [datetime] NOT NULL 
    [CODE_A] [varchar](20) 
GO 
+0

哪些字段包含「重複的代碼」?請張貼一些樣本,並指出哪些數據是問題 –

+0

您好Martin - 歡迎來到Stack Overflow!在這一點上,我不確定你在問什麼。如果問題出在數據上,請發佈您目前看到的內容,以及它應該是什麼。 – nwhaught

回答

1

建立一個單一的表Type列區分記錄是否屬於SEGMENTLABLESTRONG

CREATE TABLE [dbo].[SEGMENT](
    [ID_SEGMENT] [int] IDENTITY(1,1) NOT NULL, 
    [Type] as Varchar(15) -- Here `SEGMENT`,`LABLE` or `STRONG` 
    [CODE_SE] AS (case type 
        when 'Segment' then 'SE' 
        when 'LABLE' then 'LA' 
        else 'ST' 
        end +right('00000'+CONVERT([varchar],[ID_SEGMENT],(0)),(5))), 
    [NAME] [varchar](20), 
    [POWW] [varchar](20), 
    [SQWE] [varchar](20), 
    [DATESTART] [datetime] NOT NULL, 
    [DATESTART] [datetime] NOT NULL 
    [CODE_A] [varchar](20) 
    ) 
+0

我唯一的問題是插入的需要也保證只有那些值在源表中輸入 –

+0

@clifton_h - 的確如此..當然,OP必須確保.. –

相關問題