我在插入語句時動態插入數據時有些疑惑,所以只想得到你們的幫助。我必須做多個插入語句,基於下面兩個不同的標準,大約1500條記錄只是1個插入語句的一個樣本。 現在在執行插入語句時,我想動態分配USERID和ROLEid的2列,您可以在下面的查詢中看到這兩列。 因此,例如,(100個不同的)userid IN(500個不同的用戶標識)和角色標識。在檢查記錄是否已經存在時動態插入表
Insert into userrolelist (Userid, Roleid, IsDefault, EffectiveStart,
EffectiveEnd, Clientid, LastmodifiedUserId, LastmodifiedTimestamp)
Values (161514,1011,1,'2016-01-21 00:00:00.001',Null,16785,0,'2016-01-21
00:00:00.001')
我肯定是有辦法做到基於2個不同標準的,我只是困惑,我怎麼能做到這一點的動態插入。主要還因爲對於插入前的每個條件,我需要檢查表中是否存在userid + roleid組合。因爲如果我不檢查它,並且仍然執行插入操作,它將引發錯誤,因爲存在基於2個字段的約束。
任何有關此事的幫助將不勝感激。如果問題不是很清楚,請告訴我,如果需要,我可以添加更多解釋。謝謝。
您可以使用單個select語句執行多個插入操作,該語句還會檢查表中是否存在您要插入的userid/roleid組合。但如果沒有樣本數據(比您提供的單行更多),就很難具體說明具體情況。 – ZLK
@ZLK - 我可以嘗試爲您獲取示例數據的屏幕截圖。你可以給我一些關於如何檢查多條件select語句中已經存在的想法嗎?像一個用戶ID +角色編號 –
好吧,讓我們說,我基於另一個表插入到一個表中。我可能會做一些像'INSERT INTO myTable(column1,column2 ...)SELECT column1,column2 ... FROM myOtherTable AS WHERE NOT EXISTS(SELECT 1 FROM myTable WHERE column1 = O.column1 AND column2 = O.column2); '或者類似的東西。如有必要,我可以在select語句的條件中添加其他條件,並在必要時更改插入case語句的內容。 – ZLK