2015-06-01 65 views
0

當我嘗試通過PowerShell在數據庫中插入新數據時,它可以工作。調用「ExecuteNonQuery」的異常

但是,如果數據已經在數據庫中,我會得到異常。

有人有類似的問題,Catch exception calling "ExecuteNonQuery",但我相信我現在用的是正確的SQL語句在我的PowerShell代碼,在那裏我說SELECT 1

$SQL_insert = "BEGIN 
       IF NOT EXISTS (SELECT 1 
          FROM [dbo].[Group_Stats] 
          WHERE Date_of_Record = CAST(GETDATE() AS DATE) 
          AND [Group] = '$group') 
       BEGIN 
        INSERT INTO [dbo].[Group_Stats] ([Date_of_Record], [Group], [Windows_SEP_11],[Mac_SEP_11],[Windows_SEP_12],[Mac_SEP_12]) 
        VALUES (CAST(GETDATE() AS DATE), REPLACE ('$group', 'My Company\', ''), $win_sep_11, $mac_sep_11, $win_sep_12, $mac_sep_12) 
       END 
      END" 

異常

Exception calling "ExecuteNonQuery" with "0" argument(s): "Violation of PRIMARY KEY constraint 'PK_Group_Stats'. Cannot insert duplicate key in object 'dbo.Group_Stats'. 

這是數據庫

enter image description here

謝謝

回答

1

您正在查詢未修剪的組名稱,但是當您插入時,您可以撥打REPLACE()將「我的公司」關掉$group。您應該先修剪$group,然後查詢並插入,而不調用REPLACE()