4
我需要從表中刪除一些記錄,然後插入一些記錄到同一個表。這個刪除和插入過程應該在事務中。刪除不能在與SQL批量插入事務處理
下面是我做的。
using (SqlConnection sqlConn = new SqlConnection(connectionString))
{
sqlConn.Open();
using (SqlTransaction sqlTran = sqlConn.BeginTransaction())
{
string deleteQuery = "delete from dbo.MyTable where Col1 =" + colValue;
SqlCommand sqlComm = new SqlCommand(deleteQuery, sqlConn,sqlTran);
sqlComm.ExecuteNonQuery();
using (SqlBulkCopy sqlcopy = new SqlBulkCopy(sqlConn, SqlBulkCopyOptions.Default, sqlTran))
{
sqlcopy.BatchSize = 10;
sqlcopy.DestinationTableName = "MyTable";
try
{
sqlcopy.WriteToServer(dsDataSet.Tables[0]);
sqlTran.Commit();
}
catch (Exception ex)
{
sqlTran.Rollback();
}
}
}
}
但是,我想作爲刪除操作沒有得到執行前插入,我得到重複的關鍵錯誤。有人能幫忙嗎?
對不起..我在我的刪除查詢中犯了一個錯誤..這是一個日期列,我錯過了單引號。而不是下面的「刪除dbo.MyTable哪裏日期= '11/23/2011'」,我剛剛給它作爲「刪除dbo.MyTable哪裏日期= 2011年11月23日」。但我想知道爲什麼我沒有得到這個錯誤。非常感謝你的詳細分析。 – Muthukumar
太好了,感謝發佈結果。 – JohnD
關於爲什麼11/23/2011沒有給出錯誤的更新答案。 – JohnD