![](/img/trans.png)
[英]Microsoft SQL Server Management Studio, Import and Export Wizard to create local copy, need primary and foreign keys
[英]SQL Server Management Studio does NOT let me create multiple foreign keys to multiple primary keys
我有一個表ApplicationRegion
在一個一對多的關系Translation
。
我想將FK從Translation.appname/isocode
為ApplicationRegion.appname/isocode
但是,從屏幕截圖中可以看到,這沒有用。
當FK配置窗口打開時,左側/右側顯示3列
appname
isocode
resourcekey
然后,我選擇作為父表ApplicationRegion
並從FK設置中刪除了資源鍵列。
然后單擊“確定”,但隨后出現屏幕截圖中顯示的錯誤。
最終,我將其與該替代方法一起使用,並且我想知道為什么必須使用此替代方法?
為什么使用此解決方法?
UPDATE
哈哈...
我認為您一定在SSMS中遇到了奇怪的問題。 我能夠使用SSMS 2014創建您的架構,而沒有任何錯誤。 在添加新的FK時,它確實預填充了三個復合主鍵列。 在開始在FK中添加兩列之前,我要小心確保將它們全部清空。 也許SSMS認為空白行之一中仍然有數據。
編輯:再想一想,SSMS以緩存在編輯表時所做的任何更改而聞名。 例如,如果您要修改兩個表並同時打開兩個編輯窗口。 然后,您在一個窗口中更改PK,然后嘗試在第二個窗口中引用它,這將出錯,因為它已在第一次打開窗口時緩存了第一個表的架構。
這是我生成的DDL:
CREATE TABLE [dbo].[AppRegion](
[appname] [nvarchar](50) NOT NULL,
[isocode] [char](5) NOT NULL,
CONSTRAINT [PK_AppRegion] PRIMARY KEY CLUSTERED
(
[appname] ASC,
[isocode] ASC
)
) ON [PRIMARY]
CREATE TABLE [dbo].[Translation](
[ResourceKey] [nvarchar](128) NOT NULL,
[appname] [nvarchar](50) NOT NULL,
[isocode] [char](5) NOT NULL,
[text] [nvarchar](400) NULL,
CONSTRAINT [PK_Translation] PRIMARY KEY CLUSTERED
(
[ResourceKey] ASC,
[appname] ASC,
[isocode] ASC
)
) ON [PRIMARY]
ALTER TABLE [dbo].[Translation] ADD CONSTRAINT [FK_Translation_AppRegion] FOREIGN KEY([appname], [isocode])
REFERENCES [dbo].[AppRegion] ([appname], [isocode])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.