當 IDENTITY_INSERT 設置為 OFF 時,不能向表 '#TT' 中的標識列插入顯式值。我是在SqlServer寫存儲過程中遇到的這個錯誤,當時就心想:臨時表怎麼會有主鍵呢,我也沒有設置主鍵。然後我就和同事一塊調試,終於發現了。原因就是我把真實的數據表中id(其實就是主鍵)取出來放到臨時 ...
當 IDENTITY_INSERT 設置為 OFF 時,不能向表 '#TT' 中的標識列插入顯式值。
我是在SqlServer寫存儲過程中遇到的這個錯誤,當時就心想:臨時表怎麼會有主鍵呢,我也沒有設置主鍵。
然後我就和同事一塊調試,終於發現了。原因就是我把真實的數據表中id(其實就是主鍵)取出來放到臨時表(#TT)中,一開始是以為把主鍵的屬性取出來了。
後來又一起調試,發現不是那麼回事,
1.原來SqlServer會自動給臨時表設置主鍵,如果你要插入數據的話,還要打開主鍵,這樣你才能插入數據。“當 IDENTITY_INSERT 設置為 OFF 時,不能向表 '#TT' 中的標識列插入顯式值”
2.一種就是從同一個表中取多個欄位到臨時表中,SqlServer不會為臨時表設置主鍵,可以隨便插入
3.還要一種就是分別從多個表中取欄位(帶有id的int類型的),SqlServer就會為臨時表設置主鍵,如果不打開主鍵,在你插入數據的時候就會報錯“當 IDENTITY_INSERT 設置為 OFF 時,不能向表 '#TT' 中的標識列插入顯式值”
這就是我和我同事的心得體會了。