2009-10-25 71 views
0

我動態地創建sql查詢插入多個記錄在一個hit.suppose記錄插入是1000.in那種情況下sql查詢將在代碼java 1.4 -sql server2000:是否可以將文本追加到字符串中的大小在gbs中的字符串

String insertBatchSqlQuery=""; 

     for(int currentRecordIndex=0;currentRecordIndex<totalNoOfRecords;currentRecordIndex++) 
     { 
      insertBatchSqlQuery+=getSQL("InsertFileUploadData");//note SQL query retrieved from SQL repository must end with semi colon 
      for(int currentFieldIndex=0;currentFieldIndex<countOfProperties;currentFieldIndex++) 
      { 
       insertBatchSqlQuery+=getSQL("InsertFileUploadRecordFieldData"); 
      } 
     } 

如下產生。在這種情況下,如果沒有記錄的是1000和noOfproperties是80.then 80000插入語句將追加到字符串variable.Is它是安全的在這個用String case.Is在執行此查詢時有任何問題。

實施則ExecuteBatch由我FRND下面我上有消息執行更新 例外com.microsoft.jdbc.base.BaseBatchUpdateException .batch包含500個查詢approximately.what可以引起「操作,在用戶請求已被取消」的建議後, ?

回答

2

你應該看看batch updates而不是將所有東西都加入到一個大字符串中。

+0

混得執行與消息更新例外com.microsoft.jdbc.base.BaseBatchUpdateException「操作,在用戶請求已被取消」。批次包含約500個查詢。可能是什麼原因? – 2009-10-25 11:17:37

1

與Tangens一致,我永遠不會運行500個單獨的更新語句。也許你可以考慮建立一個這樣的查詢,而不必對自己的每一個INSERT:

INSERT dbo.table(column1, column2) 
SELECT   'foo1', 'bar1' 
UNION ALL SELECT 'foo2', 'bar2' 
UNION ALL SELECT 'foo3', 'bar3' 
UNION ALL ... 
相關問題