문제

CREATE TABLE [dbo].[INVS_ITEM_LOCATIONS]
([DEPARTMENT_CODE] [varchar](3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
 [IM_INV_NO] [numeric](10, 0) NOT NULL,
 [LOCATION_CODE] [varchar](2) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
 [CURR_QTY] [numeric](10, 0) NOT NULL CONSTRAINT [DF__INVS_ITEM__CURR___1352D76D]  DEFAULT ((0)),
 [DO_QTY] [numeric](10, 0) NOT NULL CONSTRAINT [DF__INVS_ITEM__DO_QT__1446FBA6]  DEFAULT ((0)),
 [ALLOC_QTY] [numeric](10, 0) NOT NULL CONSTRAINT [DF__INVS_ITEM__ALLOC__153B1FDF]  DEFAULT ((0)),
 [YOB_QTY] [numeric](10, 0) NOT NULL CONSTRAINT [DF__INVS_ITEM__YOB_Q__162F4418]  DEFAULT ((0)),
 [FOC_QTY] [numeric](10, 0) NULL CONSTRAINT [DF__INVS_ITEM__FOC_Q__17236851]  DEFAULT ((0)),
 [USER_CREATED] [varchar](25) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
 [DATE_CREATED] [datetime] NOT NULL,
 [USER_MODIFIED] [varchar](25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
 [DATE_MODIFIED] [datetime] NULL,

 CONSTRAINT [INVS_ITEM_LOCATIONS_PK] 
 PRIMARY KEY CLUSTERED ([DEPARTMENT_CODE] ASC,
 [IM_INV_NO] ASC, [LOCATION_CODE] ASC)
 WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

이것은 내 테이블 구조입니다 ... 어떻게 테이블에서 복합 기본 키를 제거 할 수 있습니까? 또한 IM_INV_NO 참조 테이블에 외래 키를 추가해야합니다.

도움이 되었습니까?

해결책

복합 기본 키를 제거하려면 다음을 사용합니다.

ALTER TABLE dbo.INVS_ITEM_LOCATIONS
  DROP CONSTRAINT INVS_ITEM_LOCATIONS_PK

외국 키를 추가하려면 다음을 사용하십시오.

ALTER TABLE dbo.INVS_ITEM_LOCATIONS
  ADD CONSTRAINT FK_INV_NO_REFERENCE
  FOREIGN KEY(IM_INV_NO, DEPARTMENT_CODE)
  REFERENCES dbo.invs_location(IM_INV_NO, DEPARTMENT_CODE)

이것들은 모두입니다 정말 기본 초보자 SQL 질문 - 나는 할 것이다 강하게 여기에 각각의 작은 질문을 게시하기 전에 SQL에 익숙해지기 위해 다양한 좋은 SQL 튜토리얼 중 하나를 읽는 것이 좋습니다 ....

W3Schools SQL 튜토리얼

마크

다른 팁

필요한 수정으로 새 테이블을 만들고 데이터를 복사 한 다음 오래된 테이블과 동일한 이름으로 New Talbes를 바꾸고 오래된 테이블을 삭제할 수 있습니다. 아마도 가장 효율적인 방법 일 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top