كيفية تغيير المفتاح الأساسي للجدول المركب
-
20-09-2019 - |
سؤال
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 هو invs_location الذي يحتوي
المحلول
لإزالة المفتاح الأساسي المركب الخاص بك ، استخدم:
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 البرنامج التعليمي
مارك
نصائح أخرى
يمكنك إنشاء جداول جديدة مع تعديلات تحتاجها ، ونسخ بياناتك ثم إعادة تسمية Talbes الجديدة إلى نفس الأسماء مثل الجداول القديمة وحذف الجداول القديمة. ربما تكون الطريقة الأكثر كفاءة أيضًا.
لا تنتمي إلى StackOverflow