2009-11-03 47 views
1

在SQL Server CE中,只有在刪除結尾空白後纔會強制執行nvarchar字段上的外鍵約束。這意味着如果PK是「foo」,我可以在FK中插入「foo」。
這是爲什麼?這似乎嚴重破壞了外鍵系統應該提供的數據完整性。SQL Server CE nvarchar具有結尾空白的外鍵

有什麼辦法來強制執行一個外鍵約束,使得比較中包含空格?我有什麼選擇來解決此問題?
使用整數替換FK字段是最明顯的解決方案,但由於相關應用程序的實施方式,這是最後的手段(在我的情況下)。

回答

0

這是正確的。你唯一的選擇是不使用基於字符串的FK。你可以創建一個查找表,用它們中的字符串分配一個uniqueID,然後你可以使用它作爲你的FK。