国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

解決SQL Server 2005數據庫批量更新的辦法

2024-08-31 00:46:29
字體:
來源:轉載
供稿:網友

這些天因為有數據割接的需求,于是有要寫關于批量更新的程序。我們的數據庫使用的是SQLSERVER2005,碰到了一些問題來分享下。

首先注意Statement 和PreparedStatement的問題

Statement sm = cn.createStatement();

sm.addBatch(sql1);

sm.addBatch(sql2);

...

sm.executeBatch()

用Statement的好處就是每次可以直接傳一個SQL語句進去,不用管那么多。可是在數據量比較大的時候,應該會對效率有影響。不建議使用。

PreparedStatement ps = cn.preparedStatement(sql);

{

 ps.setXXX(1,xxx);

 ...

 ps.addBatch();

}

ps.executeBatch();

PreparedStatement是會預編譯的,只要一條SQL,不斷動態設值,然后addBatch(),在數據量大的時候比較好,非常建議使用。

還有就是JDBC的驅動問題,很多同志可能還是在用2000的驅動呢,沒有用批量更新的程序沒有多大問題,可是一旦用了批量更新,出現很多問題,

反正數據庫很卡,慢。還可以更新不了哦。

我強烈建議大家更新JDBC驅動。

但是如果出現

SQLServerException: sp_cursoropen/sp_cursorprepare: 該語句參數只能是一個批或帶有單個 SELECT 語句的存儲過程,且不帶 FOR BROWSE、COMPUTE BY 或變量賦值。

應該就是JDBC的版本問題,1.0的驅動有這個問題,好像不支持批量更新,我建議大家使用1.2

我測試過了,完全沒有問題!

提供一些數據連接參數

jdbc.driverClassName:com.microsoft.sqlserver.jdbc.SQLServerDriver

jdbc.url:jdbc:sqlserver://127.0.0.1:1444;databaseName=fax;selectMethod=cursor;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 会东县| 庆云县| 天水市| 永城市| 藁城市| 绥宁县| 辽阳县| 托克逊县| 西乌珠穆沁旗| 佛山市| 宣威市| 五河县| 鲁山县| 名山县| 芒康县| 铜川市| 太仆寺旗| 南雄市| 宁阳县| 象山县| 铁力市| 武强县| 炉霍县| 宣城市| 苍山县| 道孚县| 乌兰察布市| 苍南县| 宁阳县| 洪湖市| 桑植县| 泽库县| 木兰县| 栾川县| 淄博市| 宁城县| 汝城县| 蓬溪县| 闻喜县| 乐平市| 平昌县|