2009-08-31 116 views
0
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包含im_inv_no並且department_code應該是相同的主鍵.pls幫助如何更改表的複合主鍵

+0

請嘗試像「SQL服務器2005」的有用和相關的標籤添加到您的下一個問題的時候了。它可以讓人們更好地瞭解您正在使用的內容以及如何向您尋求幫助! – 2009-08-31 13:08:57

+0

你打算把一些主鍵放在桌子上,對吧?如果組合鍵中的文件是獨一無二的,那麼當您至少刪除主鍵時,您應該在其上放置一個唯一索引,否則將來會出現數據完整性問題。 – HLGEM 2009-11-11 14:07:44

回答

4

要刪除您的複合主鍵,使用方法:

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 Tutorial

馬克

+0

好的,謝謝你的工作 – Domnic 2009-08-31 13:00:47

+2

好的,然後做正確的事,接受答案!成爲一名好的SO公民,在未來獲得答案! – 2009-08-31 13:05:49

1

您可以根據需要進行修改來創建新表,然後複製數據,然後將新的talbs重命名爲與舊錶相同的名稱並刪除舊錶。這也許是最有效的方法。

+1

使用ALTER TABLE命令是最有效的方法。但是,如果您正在製作生產數據庫,則使用「創建複製和重命名」方法將是破壞性最小的方法(即鎖定/停機時間)。 – 2009-08-31 14:14:43