wie Tabelle Composite-Primärschlüssel ändern
-
20-09-2019 - |
Frage
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]
Das ist meine Tabellenstruktur ist ...... wie kann ich den zusammengesetzten Primärschlüssel in der Tabelle entfernen und auch soll ich Fremdschlüssel im_inv_no Referenztabelle hinzuzufügen, ist invs_location die im_inv_no enthalten und die department_code sollten gleicher Primärschlüssel .pls sein Hilfe
Lösung
Ihre zusammengesetzten Primärschlüssel zu entfernen, verwenden Sie:
ALTER TABLE dbo.INVS_ITEM_LOCATIONS
DROP CONSTRAINT INVS_ITEM_LOCATIONS_PK
einen Fremdschlüssel hinzuzufügen, verwenden Sie diese:
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)
Das sind alles wirklich grundlegende Anfänger SQL Fragen - ich würde stark empfehlen lesen Sie eine der verschiedenen gute SQL-Tutorials gibt zunächst zu SQL gewöhnen, vor der Veröffentlichung jede und jede einzelne kleine Frage hier ....
Marc
Andere Tipps
Sie können erstellen neue Tabellen mit Änderungen, die Sie benötigen, kopieren Sie Ihre Daten dann neu talbes den gleichen Namen wie alten Tabellen umbenennen und alte löschen. Es ist wahrscheinlich die effizienteste Art und Weise auch.