通過SQL Server Management Studio中的編輯器進行更新時,導致此問題的原因是什麼。是否有必要爲表的主鍵?什麼是通過Sql數據更新時的原因編輯器是否有必要有表的主鍵?
簡單的表tab1
模式
Accid(int, not null),Bench1 (varchar(50),null),Bench2(varchar(50),null)
Accid Bench1 Bench2
-------------------------------
1 null null
1 null null
2 null null
2 null null
3 null null
4 null null
update tab1 set Bench1='xx' where accid=1
工作正常
(2 row(s) affected)
但同時更新通過編輯給錯誤
我在看了一些帖子,他們SA
表中包含文本或ntext數據 類型的一個或多個列:如果下列條件爲真ID
出現此問題。
這些列中的一個的值包含以下字符: 百分號(%) 下劃線(_) 左括號([)
- 表不包含主鍵。
http://support.microsoft.com/kb/925719
所以這裏爲什麼主鍵是強制性的?
if YES
then how it allows updating through query?
else if(NO)
what is reason behind this?
你有獨特的鑰匙控制嗎? –
根據我的經驗,它不需要主鍵,但行必須在至少1個字段中唯一。該編輯器一次將更改限制爲1行。如果它不能區分1行和下一行,則失敗。 –
@ roryap沒有。我還包括架構屏幕 –