SQLServer2005插入資料錯誤? - 手錶

Charlotte avatar
By Charlotte
at 2009-06-10T00:00

Table of Contents

我執行後資料表可以建起來但是還是有錯誤訊息不知道哪裡錯了希望大家幫我看一下,謝謝Createtable手錶(IDvarchar(50)notnull,錶面varchar(50),機芯varchar(50),錶帶材質varchar(50),價格int,picimage,primarykey(ID),);Createtable廠牌(IDvarchar(50)notnull,廠牌varchar(50),primarykey(廠牌),foreignkey(ID)references手錶(ID)ONDELETECASCADEONUPDATECASCADE);Createtable功能(IDvarchar(50)notnull,防水varchar(50),鬧鈴varchar(10),碼錶計時varchar(10)primarykey(ID),foreignkey(ID)references手錶(ID)ONDELETECASCADEONUPDATECASCADE);InsertInto手錶(ID,錶面,機芯,錶帶材質,價格,pic)Select'BL9000-32A'AsID,'藍寶石水晶玻璃,不鏽鋼錶殼'As錶面,'原廠機芯G900'As機芯,'真皮'As錶帶材質,17200As價格,*FromOpenRowSet(BulkN'F:\project\001.jpg',Single_Blob)Aspic;InsertInto廠牌Values('BL9000-32A','Citizen');InsertInto功能Values('BL9000-32A','日常生活防水','2組鬧鈴','無');InsertInto手錶(ID,錶面,機芯,錶帶材質,價格,pic)Select'BL9000-83E'AsID,'藍寶石水晶玻璃,不鏽鋼錶殼'As錶面,'原廠機芯G900'As機芯,'不銹鋼'As錶帶材質,18800As價格,*FromOpenRowSet(BulkN'F:\project\002.jpg',Single_Blob)Aspic;InsertInto廠牌Values('BL9000-83E','Citizen');InsertInto功能Values('BL9000-83E','日常生活防水','2組鬧鈴','無');錯誤訊息是訊息2627,層級14,狀態1,行50違反PRIMARYKEY條件約束'PK__廠牌__0DAF0CB0'。無法在物件'dbo.廠牌'中插入重複的索引鍵。陳述式已經結束。...Showmore
Tags: 手錶

All Comments

Madame avatar
By Madame
at 2009-06-10T11:48
[廠牌]這個table的PK是在[廠牌]這個欄位上.妳兩次的Insert[廠牌]時,[廠牌]欄位的值都是'Citizen'所以失敗.2009-06-1117:08:10補充:我會考慮把schema改成:Createtable廠牌(廠牌varchar(50)notnull,primarykey(廠牌),);2009-06-1117:08:19補充:Createtable手錶(IDvarchar(50)notnull,廠牌varchar(50),錶面varchar(50),機芯varchar(50),錶帶材質varchar(50),價格int,picimage,primarykey(ID),foreignkey(廠牌)references廠牌(廠牌)ONDELETECASCADEONUPDATECASCADE);2009-06-1117:08:26補充:Createtable功能(IDvarchar(50)notnull,手錶IDvarchar(50),防水varchar(50),鬧鈴varchar(10),碼錶計時varchar(10)primarykey(ID),foreignkey(手錶ID)references手錶(ID)ONDELETECASCADEONUPDATECASCADE);2009-06-1117:15:15補充:修正一下,廠牌的pk最後不該有','Createtable廠牌(廠牌varchar(50)notnull,primarykey(廠牌));2009-06-1117:27:15補充:其實這樣修改仍與實務上的做法有點差距.不過應該也算夠用了.2009-06-1123:52:16補充:schema那樣改後,你Insert有調整過嗎?材質重複是無所謂,但是你得檢查清楚,被定義成PK的地方,那個值不可以Insert第二次.若必須要Insert第二次,則表示schema設計仍有問題....Showmore