2017-07-16 72 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必须确保.. –

相关问题