我正在使用SMO從Sql服務器數據庫使用.Net代碼編寫腳本。但截至目前,我正在經歷一個循環。使用SMO編寫並行循環中的.net中SQL服務器數據庫的對象定義
foreach(var table in TableCollection)
{
var stringCollection=table.Script();
}
它工作正常。但是,當我將其轉化循環爲Parallel.ForEach
循環,如:
Parallel.ForEach(TableCollection,table=>
{
var stringCollection=table.Script();
});
它沒有腳本。有沒有人使用相同的方法或其他方法來並行編寫Sql服務器中的對象?
UPDATE:
我一直沒能制定出並行循環到現在爲止,但我下面提到的代碼中使用:
server.SetDefaultInitFields(true);
它改善了性能上有一定影響。
它究竟如何失敗?它會拋出一些異常嗎? – svick 2012-03-07 08:57:03
是的,它拋出一個異常,就是已經有一個與此命令關聯的OPEN數據讀取器。可能是兩個線程並行嘗試編寫SERVER對象(使用同一個實例)時會造成麻煩。 – AjayK 2012-03-07 09:18:52